Bha*_*ani 4 javascript reactjs next.js zustand
我正在尝试使用地图来存储状态,当状态正在更新时,组件不会使用新状态重新渲染
const store = (set, get) => ({
items: new Map(),
addItem: (key, item) => {
set((state) => state.items.set(key, item));
// this prints the latest state
console.log(get().items)
},
removeItem: (key) => {
set((state) => state.items.delete(key));
},
)}
const useStore = create(store);
export default useStore
Run Code Online (Sandbox Code Playgroud)
useEffect 不打印任何内容
const items = useStore((state) => state.items))
useEffect(() => {
console.log(items)
}, [items]);
Run Code Online (Sandbox Code Playgroud)
Map您应该在更新时创建一个新实例,如下所示:
const store = (set, get) => ({
items: new Map(),
addItem: (key, item) => {
set((state) => {
const updatedItems = new Map(state.items)
updatedItems.set(key, item)
return { items: updatedItems }
});
// this prints the latest state
console.log(get().items)
},
)}
Run Code Online (Sandbox Code Playgroud)
注意:删除项目时,您必须执行类似的操作。
| 归档时间: |
|
| 查看次数: |
5767 次 |
| 最近记录: |