我可以创建一个在React渲染函数内部计算的mobx以像useMemo()一样使用吗?

问题描述 投票:0回答:1

我想知道如何使用在useMemo挂钩内可观察到的mobx。我知道我可以将所有可能的依赖项传递给该钩子,但这可能会造成一些混乱:

const MyComponent = observer(() => {
  const people = useGetPeople();
  const peopleFormatted = useMemo(() => {
    return people.map(person => person.fullName);
  },[ ...? ]);
});

我不能轻易使每个人的firstName成为useMemo的依赖项。我想我可以将功能提取到计算出的值中……但是我觉得这行不通:

const MyComponent = observer(() => {
  const people = useGetPeople();
  const peopleFormatted = computed(() => {
    return people.map(person => person.fullName);
  });
});

我觉得它将使mobx混淆以在反应内部创建一个计算,该反应必须依赖于该计算。

[我知道我可以将计算结果提取给每个人,但是我不认为这是可以满足每个用例的解决方案。

提前感谢!

mobx mobx-react
1个回答
0
投票

永远不要使用React.useMemo来保持对状态对象的引用。它可能会被React随机丢弃,并且您可能会丢失数据。https://mobx-react.js.org/state-how

© www.soinside.com 2019 - 2024. All rights reserved.