Javascript 如何为嵌套在react js列表中的词典设置状态

Javascript 如何为嵌套在react js列表中的词典设置状态,javascript,reactjs,react-native,react-router,setstate,Javascript,Reactjs,React Native,React Router,Setstate,下面是我的代码。。 我想将数据的状态(存在于数据集中)设置为用户定义的值 constructor(props) { super(props); this.state={ value:'', set:[], count:0, data: { labels: ["Jan", "Feb", "Mar", "Apr"],

下面是我的代码。。 我想将数据的状态(存在于数据集中)设置为用户定义的值

constructor(props)
{
    super(props);
    this.state={
        value:'',
        set:[],
        count:0,
        data: {
            labels: ["Jan", "Feb", "Mar", "Apr"],
            datasets:[ {
                data: [10,20,30,40]
            }]
        },
       
    }
}
我尝试了下面的代码,但没有成功

 this.setState(prevState => {
    return{
        datas: {...prevState.datas,datasetss: {...prevState.datas.datasetss[0], data [...prevState.datas.datasetss[0].data,prevState.value]}
        }
    }
})

我不太确定我是否理解了您的需求,但这里有一个更新嵌套属性的代码段,我希望它对您有用

import { useState, useEffect } from "react";

export default function App() {
  const [data, setData] = useState({
    value: "",
    set: [],
    count: 0,
    data: {
      labels: ["Jan", "Feb", "Mar", "Apr"],
      datasets: [
        {
          data: [10, 20, 30, 40]
        }
      ]
    }
  });

  useEffect(() => {
    setTimeout(() => {
      setData((currentData) => {
        const newData = { ...currentData };
        newData.data.datasets[0].data = [1, 2, 3, 4];
        return newData;
      });
    }, 3000);
  }, []);

  return (
    <div className="App">
      <pre>{JSON.stringify(data, null, 1)}</pre>
    </div>
  );
}
从“react”导入{useState,useffect};
导出默认函数App(){
const[data,setData]=useState({
值:“”,
集合:[],
计数:0,
数据:{
标签:[“一月”、“二月”、“三月”、“四月”],
数据集:[
{
数据:[10,20,30,40]
}
]
}
});
useffect(()=>{
设置超时(()=>{
设置数据((当前数据)=>{
const newData={…currentData};
newData.data.datasets[0].data=[1,2,3,4];
返回新数据;
});
}, 3000);
}, []);
返回(
{JSON.stringify(数据,null,1)}
);
}

您可以执行以下操作


打字是故意的吗?数据集vs数据集工具!,不客气!
  // Getting the initial/ prev values for data
  const newState = {...this.state.data.datasets[0]};
  // Add the new value to data. Here I am adding 50 and 60    
  newState.data.push(50, 60);
  // Set the state using useState
  this.setState({newState});