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