【发布时间】:2020-11-04 14:45:36
【问题描述】:
我正在寻求一些帮助,以延迟某些计算数据的显示,直到它所依赖的状态在父组件中设置。在下面的简化示例中,App 的值设置为 0,然后运行一些计算并更新状态。
问题是当Calculate被点击时,更新初始val状态的计算还没有发生,因此从calcOverUnderPayment推导出的最终值是不正确的。
它只会在所有后续点击中显示正确的值。
我能做些什么来解决这个问题?
非常感谢。
function App() {
const [val, setVal] = useState(0)
const calculate = () => {
// code to run some calculations which I then set as state
setVal(100)
}
return (
<>
<button onClick={() => calculate()}>Calculate</button>
<Outcome
val={val}
/>
</>
)
}
function Outcome(val) {
const calcOverUnderPayment = (value: number, type: string) => {
if (type === 'under') {
return (value > 0) ? value : 0
} else {
return (value < 0) ? value : 0
}
}
return (
<>
Final Val is {calcOverUnderPayment(val)}
</>
)
}
【问题讨论】:
标签: javascript reactjs