React + Antd v5 更新状态后元素不变的问题?-灵析社区

元气满满才怪啊

用的是 `React` 和 `Antd v5` 为什么在改了 `state` 之后元素还是没变化呢 const [editLock, setEditLock] = useState(false); const MenuAction = () => setEditLock(true)} /> const menuDefault: MenuProps['items'] = [ { label: , key: 'top' }, ]; const formatMenu = (data: any) => data.map((item: any) => ({ key: item.id, children: [], label: {!editLock && } , })) 问过 GPT 但是没有结果

阅读量:21

点赞量:0

问AI
"useState" 之类的**"hooks" 只能在自定义 "hook" 或者函数组件内使用**,不能在顶层作用域使用。不过神奇的是这样写居然能编译,我在 TS + React 环境下试了试,直接过不了 lint 检测。 并且 React 没有响应式属性的概念,因此无法在两个独立的组件之间共享 "state" ,要实现类似的功能,可以使用 "sustand"。 安装 npm install zustand 使用: import { create } from "zustand"; const useStore = create((set) => ({ editLock: false, setEditLock: (value) => set(() => ({ editLock:value })), })); const MenuAction = () => { const { editLock, setEditLock } = useStore((state) => state); return ( setEditLock(true)} /> ) } const formatMenu = (data: any) => data.map((item: any) => ({ key: item.id, children: [], label: () => { const { editLock } = useStore((state) => state); return !editLock? : null }, })) «这里的 label 要作为组件传递和使用,而不是作为 "JSX.Element"。»