我只是在嘗試 ReactJS 并遇到了一個問題。我只想根據 BootstrapSwitchButton 的值更新一個變數。經過一段時間的除錯,我得出的結論是變數正在根據需要更新,但沒有顯示在反應渲染部分內,而是顯示了來自函式的更新值。我的代碼是:
const [state, setState] = useState(false);
let btnValue;
function changeValue(value)
{
console.log("Value: " value)
btnValue = value;
setState(value);
console.log("Button Value at function: " btnValue)
}
return (
<div className="App">
<BootstrapSwitchButton checked={true} onlabel="On" offlabel="Off" width={100} onChange={changeValue}/>
{console.log("Button Value: " btnValue)}
</div>
);
}
我只想知道這里發生了什么?為什么即使狀態發生變化,react 也不會顯示更新的值?
uj5u.com熱心網友回復:
您不應在組件背景關系中使用區域變數,因為它們不在狀態生命周期內。React 不知道這個變數,因此不會“跟蹤”它。而不是btnValue,使用您的state,因為那時 react 將處理與組件更改相關的任何操作。您可以在反應狀態和生命周期頁面中閱讀更多相關資訊。
function changeValue(value)
{
console.log("Value: " value)
setState(value);
console.log("Button Value at function: " value)
}
return (
<div className="App">
<BootstrapSwitchButton checked={true} onlabel="On" offlabel="Off" width={100} onChange={changeValue}/>
{console.log("Button Value: " state)}
</div>
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383529.html
上一篇:MYSQL查詢年齡計算
下一篇:洗掉變數中的檔案-bash
