mur*_*a_1 0 javascript reactjs react-hooks use-state
我在文件中定义了一个对象,如下所示:
export const items = {
first: false,
second: false,
third: false
}
Run Code Online (Sandbox Code Playgroud)
我在组件中使用它,如下所示:
import { items } from 'file';
const [elements, setElements] = useState(items);
Run Code Online (Sandbox Code Playgroud)
我有一个方法,当单击按钮时会调用该方法 - 该方法应该将所有值更改elements为true
使用以下更改值,但它不会触发组件的重新渲染(这就是我需要的)
Object.keys(elements).forEach(element => elements[element] = true);
Run Code Online (Sandbox Code Playgroud)
我如何使用setElements来更新 中的所有值elements?
你面临的问题是你正在改变状态对象,这意味着最后,prevState === nextStateReact 会退出渲染。一种选择是使用一个新对象并像这样复制道具,使用相同的Object.keys和组合,forEach但添加额外的步骤:
setState(prevState => {
const nextState = {}
Object.keys(prevState).forEach(key => {
nextState[key] = true
})
return nextState
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1241 次 |
| 最近记录: |