【发布时间】:2020-02-08 11:12:52
【问题描述】:
我有这样的事情
const [state, setState] = useState({
num: 0
});
const validateBiggerThan0 = () => {
return state.num > 0;
};
const [validation, setValidation] = useState({
val: validateBiggerThan0
});
问题是当我调用validation.validateBiggerThan0时,这个函数没有当前的state。
在这个简单的示例中,我可以将值sate.num 作为参数传递给validateBiggerThan0,但在我的实际应用程序中这是不可行的,因为我有多个验证并且有些可以使用多个来自状态的值。有没有其他选择?
有问题的沙盒: https://codesandbox.io/s/heuristic-mountain-2poz7?fontsize=14&hidenavigation=1&theme=dark
【问题讨论】:
-
快速解决方案
return state ? state.num > 0 : false -
@Omer 不明白,在哪里?
-
在 validateBiggerThan0
-
@Omer 我想你不明白我的问题。
state不是undefined。问题是state.num没有在validateBiggerThan0中更新。 @Mat Sz 的回答解决了我的问题
标签: reactjs react-hooks react-state-management