我的 React Native 应用程序中有一个使用功能组件的常量 userIndex。
我使用以下方法初始化用户索引:
const [userIndex, setUserIndex] = useState(0);
我还有一个常量叫做renderedUserIndex。对我来说,似乎有两种方法可以设置此常量:
OPTION A:
const renderedUserIndex = userIndex % 2 === 0 ? userIndex : userIndex + 1;
二是:
OPTION B:
const [renderedUserIndex, setRenderedUserIndex] = useState(0);
useState(() => {
setRenderedUserIndex(userIndex % 2 === 0 ? userIndex : userIndex + 1);
}, [userIndex]);
哪种方法更受欢迎?
我假设你的意思是在最后一个片段中useEffect
并像这样回答这个问题。
选项A绝对是要走的路。如果您在同一功能组件中使用renderedUserIndex
,那么实际上没有理由将其保存在自己的状态中。
如果您需要两个索引在某个时候出现分歧,则可以使用选项 B,否则就不需要它。
最好的选择是遵循
const renderUserIndex = useMemo(() => userIndex % 2 === 0 ? userIndex : userIndex + 1 , [userIndex])
就像现在一样,渲染用户索引只会在用户索引更改意味着 s 时计算它不会在每次渲染时不必要地计算。