希望我能在这里解释我要做什么。我使用WordPress作为我的API,并使用CRA获取数据。
控制台记录数据时,我有一个带有2个不同数组的对象。
哪个返回:{consult_business: Array(2), consult_strategy: Array(2)}
我有一个状态:
const [consult, setConsult] = useState({
consult_business: [],
consult_strategy: []
});
现在,我要在负载下执行的操作是将这2个数组推入单独的数组中,然后将其推入咨询状态。这样,我将能够基于下拉选择值来映射值。
我想用useEffect来做。
我该怎么做?
答案 0 :(得分:1)
这是您可以做到的方式:
当您的数据{consult_business: Array(2), consult_strategy: Array(2)}
与状态结构匹配时,您可以直接对其进行设置,如下所示
useEffect(() => {
// first make API call and get details
setConsult(your_data); // <-- then set those details via this
},[]); //<--- [] means it will execute useEffect only once , as you need on load
您可以通过以下方式访问这些值
consult.consult_business // <--- Will provide first array
consult.consult_strategy // <--- Will provide you second array
如果要加入两个数组,可以执行以下操作:
[...consult.consult_business , ...consult.consult_strategy]
答案 1 :(得分:1)
赋予状态
const [consult, setConsult] = useState({
consult_business: [],
consult_strategy: []
});
以及与状态形状完全匹配的响应数据形状(具有相同键和值类型的对象)
{consult_business: Array(2), consult_strategy: Array(2)}
模式应该是
useEffect(() => {
// fetch data
setConsult(data);
}, []); // <-- empty dependency array to run effect once on component mount