如何使用 reselect 优化状态重新渲染

问题描述

目前,尽管值相同,但由于此状态更新,我得到了很多重新渲染。我已经阅读了有关重新选择的内容,但我无法让它按预期工作,并想知道我做错了什么。

我有一个钩子可以检查状态并根据电子邮件是否存在返回真或假。 email 属性为 null 或字符串。

const test2 = useMemo(() => test(),[]);
const userProfile = useSelector(test2);
const NO_USER_PROFILE = useMemo(() => !userProfile.email,[userProfile]);
const HAS_ACCESS_TOKEN = useMemo(() => !!authentication.access_token === true,[authentication]);

然后在我的选择器文件中,我有以下内容

export const selectProfile = ({ profile }) => profile.me.email;
export const test = () => createSelector(
  [selectProfile],email => {
    if (email) {
      return true;
    }

    return false;
  }
);

目前我得到了很多错误的安慰,如果是真的,我也会得到其中的一些。我希望 createSelector 仅在发生更改时才更新,但情况似乎并非如此。希望有人指出我哪里出错了。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)