【发布时间】:2021-12-27 16:24:57
【问题描述】:
我有一个 MenuOptions 组件,我将选项道具传递给它。选项是一大堆对象。每个对象都有一个嵌套数组,称为“服务”,服务内部是一个带有键“serviceType”的对象,这是我想要的唯一值。我想获取所有这些值,将它们推入一个新数组并删除任何重复项(如果有),然后映射该新数组并在“选项”html 标记中显示每个项目。
这是我的 createArray 函数:
const createNewArray = () => {
let optionsArr = []
let uniqueArr;
options.map((option) => {
option.services.map((service) => optionsArr.push(service.serviceType))
})
uniqueArr = [...new Set(optionsArr)];
return uniqueArr;
}
uniqArr 似乎持有我想要的东西,但现在我想将它设置为一个全局状态。尝试这样的事情是行不通的。数组似乎仍然设置为 null
const [array, setArray] = useState(null)
useEffect(() => {
setArray(createNewArray())
}, [])
有什么解决办法吗?谢谢
【问题讨论】:
-
我已经发布了一个解决方案,如果是你想要的,请检查一下
-
“这不起作用”是什么意思?
-
你能显示更多上下文吗? MenuOptions 的定义是什么样的?
标签: javascript arrays reactjs use-effect use-state