【发布时间】:2022-02-01 13:50:30
【问题描述】:
我正在处理某些功能中的某些功能。基本上我正在处理多个功能中的一些状态。当特定状态更新时,需要调用这些函数。现在有很多状态要更新。所以我尝试了这种方法,我为特定情况创建了一个函数,然后根据该值设置它们的状态,但它都在 useEffect 中。
useEffect(() => {
if (notificationAction && actualCase) {
switch (actualCase) {
case firstCase:
handleStatesBasedOnFirstCase();
break;
case firstCase:
handleStatesBasedOnSecondCase();
break;
}
}
}, [actualCase, notificationAction])
而且那个函数也是一个回调。
const handleStatesBasedOnFirstCase = useCallback(() => {
if (someState !== props.someState) {
// Setting some states here
}
}, [somestates...])
这是一个好习惯吗?或者我应该在初始化状态时给出条件。
const [someState, setSomeState] = useState(props.someState || props.someOtherValue);
我认为在 useState 中设置 props 不是一个好习惯。这就是我试图维护多个功能以根据适当的情况和条件设置适当状态的原因。请帮帮我。
【问题讨论】:
-
对我来说听起来是个使用减速器的好地方。
-
这里有一些例子;我个人认为这些文档目前对于解释减速器并没有太大帮助。 kentcdodds.com/blog/should-i-usestate-or-usereducer
标签: javascript reactjs typescript react-native react-functional-component