如何更新条件逻辑中的状态?
How to update state inside conditional logic?
只有在满足条件时,我才需要使用 setExpression 挂钩更新我的状态。我只是说这不应该工作,因为你不能从条件逻辑内部调用钩子,但我还没有找到任何解决方法。我怎样才能做到这一点?
let handleOperator = e => {
let last = expression[expression.length - 1]
if (last === "+" || last === "-" || last === "*" || last === "/") {
setExpression(expression.slice(0, -1))
}
pushToString(e)
}
您的代码完全有效。您可以在任何您喜欢的地方调用从 useState
(例如 const [expression, setExpression] = useState('');
)返回的 setExpression
函数,但是您不能在内部使用钩子本身(本例中的 useState
)条件逻辑。
只有在满足条件时,我才需要使用 setExpression 挂钩更新我的状态。我只是说这不应该工作,因为你不能从条件逻辑内部调用钩子,但我还没有找到任何解决方法。我怎样才能做到这一点?
let handleOperator = e => {
let last = expression[expression.length - 1]
if (last === "+" || last === "-" || last === "*" || last === "/") {
setExpression(expression.slice(0, -1))
}
pushToString(e)
}
您的代码完全有效。您可以在任何您喜欢的地方调用从 useState
(例如 const [expression, setExpression] = useState('');
)返回的 setExpression
函数,但是您不能在内部使用钩子本身(本例中的 useState
)条件逻辑。