Page 1 of 1

【需求】面板小程序支持监听Native页面中家庭成员添加/修改(基本信息或角色)/删除事件

Posted: 2025年 Apr 2日 17:15
by doomty

【需求背景】当家庭成员有新增/修改(名称或角色)/删除时,同步刷新面板成员列表数据

由于以下原因,面板无法实现上述需求
【新增/修改(名称或角色)/删除】
1、这些操作是在native页面进行的,面板没法知晓用户具体进行了什么操作,
2、这些操作也可能是在另外一部手机上操作
3、假定前2点都可以解决,那么操作完以后,云端数据更新可能会存在延迟,面板重新查询不一定能拿到最新的值


Re: 【需求】面板小程序支持监听Native页面中家庭成员添加/修改(基本信息或角色)/删除事件

Posted: 2025年 Apr 2日 19:01
by muhai

目前没有开放这样的能力,这个需要提工单支持一下,我们会尽快跟进支持


Re: 【需求】面板小程序支持监听Native页面中家庭成员添加/修改(基本信息或角色)/删除事件

Posted: 2025年 Apr 3日 09:26
by doomty
muhai 2025年 Apr 2日 19:01

目前没有开放这样的能力,这个需要提工单支持一下,我们会尽快跟进支持

工单提过了,告知不支持才来这里发帖的 ID: T202504020708


Re: 【需求】面板小程序支持监听Native页面中家庭成员添加/修改(基本信息或角色)/删除事件

Posted: 2025年 Apr 7日 09:48
by muhai

如果只是需要返回当前页面,让当前页面刷新的方法,可以试试 usePageEvent

Code: Select all

import { usePageEvent } from '@ray-js/ray';
import { useRef } from 'react';

/**
 * 在页面第二次 onShow 的时候才会触发,用于一些首次不需要执行的逻辑情况,比如从 App 页面返回
 */
export function usePageReShow(fn: (...arg: any) => any) {
  const isMounted = useRef(false);
  usePageEvent('onShow', () => {
    if (isMounted.current) fn();
    isMounted.current = true;
  });
}

代码示例:https://github.com/Tuya-Community/tuya- ... Show.ts#L7


Re: 【需求】面板小程序支持监听Native页面中家庭成员添加/修改(基本信息或角色)/删除事件

Posted: 2025年 Apr 7日 10:46
by doomty
muhai 2025年 Apr 7日 09:48

如果只是需要返回当前页面,让当前页面刷新的方法,可以试试 usePageEvent

Code: Select all

import { usePageEvent } from '@ray-js/ray';
import { useRef } from 'react';

/**
 * 在页面第二次 onShow 的时候才会触发,用于一些首次不需要执行的逻辑情况,比如从 App 页面返回
 */
export function usePageReShow(fn: (...arg: any) => any) {
  const isMounted = useRef(false);
  usePageEvent('onShow', () => {
    if (isMounted.current) fn();
    isMounted.current = true;
  });
}

代码示例:https://github.com/Tuya-Community/tuya- ... Show.ts#L7

1、这个返回刷新还是没法解决网络延迟的问题(刷新的数据不一定是最新的)
2、目前小程序也没提供跳转到Native成员添加/编辑的页面(之前提过相关需求)


Re: 【需求】面板小程序支持监听Native页面中家庭成员添加/修改(基本信息或角色)/删除事件

Posted: 2025年 Apr 7日 10:50
by doomty

RN之前是有提供相关监听器的,小程序可以同步提供一下吗?
// addMemberHandler 添加成员;removeMemberHandler 移除成员;resetMemberRoleHandler 修改成员角色;resetMemberNameHandler 修改成员昵称
new NativeEventEmitter(NativeModules.TYRCTHomeManager).addListener('addMemberHandler');