有没有办法设置 const 值,该值会因其依赖关系而改变?

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

我正在尝试使用 useState 钩子设置一个 const 值:

const [liked, isLiked] = useState(messages?.likes?.some((like)=>like.id === user.id))

这里,当

messages
改变时,
liked
值不会更新。我知道我可以使用
useEffect
钩子,但是有没有办法在不使用
liked
钩子的情况下定义
useEffect
值?

reactjs react-hooks
1个回答
0
投票

是的,使用

useMemo
挂钩。
useMemo
基本上
useState
+
useEffect
以保持“同步”。这就是通常所说的“派生状态”,因此将派生状态存储在实际的 React 状态中被认为是一种 React 反模式。 示例:

const liked = useMeo( () => messages?.likes?.some((like) => like.id === user.id), [messages, user] );

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