Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何将状态中的值添加到对象中_Reactjs - Fatal编程技术网

Reactjs 如何将状态中的值添加到对象中

Reactjs 如何将状态中的值添加到对象中,reactjs,Reactjs,我有一个叫做jiraTicketChartData的对象。数据集具有具有硬编码值的数据键。我想用状态变量(jiraticketsData)数据替换那些硬编码的值。我想用这些数字访问饼图值 下面是如何使用状态数据 const缺陷=()=>{ 常量加载=使用上下文(加载上下文) const snackbar=useContext(SnackbarContext) const user=useContext(UserContext) const[jiraticketsData,setJiraTick

我有一个叫做jiraTicketChartData的对象。数据集具有具有硬编码值的数据键。我想用状态变量(jiraticketsData)数据替换那些硬编码的值。我想用这些数字访问饼图值

下面是如何使用状态数据

const缺陷=()=>{
常量加载=使用上下文(加载上下文)
const snackbar=useContext(SnackbarContext)
const user=useContext(UserContext)
const[jiraticketsData,setJiraTicketsData]=useState(null)
useffect(()=>{
异步函数onLoadJiraTicketData(){
加载。设置加载(true)
const results=wait get(`get\u jira\u tickets`,user.user)
如果(results.status==0){
setJiraTicketsData(results.data)
}否则如果(results.status>=20&&results.status{
异步函数onLoadJiraTicketData(){
加载。设置加载(true)
const results=wait get(`get\u jira\u tickets`,user.user)
如果(results.status==0){
setJiraTicketsData(results.data)
}否则如果(results.status>=20&&results.status{
jiraTicketChartData.datasets[0]。数据=对象。值(jiraticketsData.pie_图表);
},[jiraticketsData]);
常数jiraTicketChartData={
标签:[“积压”、“进行中”、“审查中”
],
数据集:[
{
背景颜色:[
“蓝色”,
“橙色”,
“绿色”
],
数据:jiraticketsData.pie_图表
}
]
}
更新错误:


饼图是一个对象,因此您必须访问类似对象,因此:

在useffect if语句中,请尝试:

if(results.status==0){
setJiraTicketsData(results.data);
jiraTicketChartData.datasets[0]。数据=对象。值(结果。数据。饼图);
}
或者,您可以为此设置另一个useEffect钩子,但随后您将引入另一个重新渲染的东西以保持关注,如下所示

useffect(()=>{
jiraTicketChartData.datasets[0]。数据=对象。值(jiraticketsData.pie_图表);
},[jiraticketsData]);

似乎不起作用,我也只是更新了代码,以显示在开发工具中传递了哪些道具如果这更有帮助的话,您希望保存什么样的数据类型
jiraticketsData
?如果是数组,将初始状态设置为
[]
而不是
null
数组,谢谢,我将检查您的以上答案。数据键值是否为data:jiraticketsData.pie_chart[0]?什么是
jiraticketsData.piechart
数组?尝试
jiraTicketChartData.datasets[0].data=jiraticketsData.pie_chart
请不要通过破坏您的帖子来为他人做更多的工作。通过在Stack Exchange(SE)网络上发布,您已经在下授予了SE分发内容的不可撤销的权利(无论您将来的选择如何)。根据SE策略,将分发非破坏性版本。因此,任何此类破坏性编辑都将被还原。有关删除此网站内容的详细信息,请参阅。
const defects = () => {
    const loading = useContext(LoadingContext)
    const snackbar = useContext(SnackbarContext)
    const user = useContext(UserContext)

    const [jiraticketsData, setJiraTicketsData] = useState(null)

    useEffect(() => {
      async function onLoadJiraTicketData() {
        loading.setLoading(true)
        const results = await get(`get_jira_tickets`, user.user)
        if (results.status === 0) {
          setJiraTicketsData(results.data)
        } else if (results.status >=20 && results.status <=30){
          snackbar.statusCheck(results)
          user.setSessionTokenMatches(false)
        } else snackbar.statusCheck(results)
        loading.setLoading(false)
        }
        onLoadJiraTicketData()

    }, [])

    const jiraTicketChartData = {
      labels: ['backlog', 'in progress', 'in review'
      ],

      datasets: [
        {
          backgroundColor: [
            'blue',
            'orange',
            'green'
          ],
          data: [1,3,3], ***This data should be replaces jiraticketsData.piechart values***
        }
      ]
    }


  return (!jiraticketsData ? null :
    <PageWrapper title={'Jira Tickets'}>
    <div className="jiraTicketChartContainer" >
    <Pie
          data={jiraTicketChartData}
          options={{
            title:{
              display:true,
              text:'Open Issues by priority',
              position: 'top',
              fontSize:20
            },
            legend:{
              display:true,
              position:'left'
            }
          }}
        />
    </div>
    </PageWrapper>

  )
}


export default defects
  useEffect(() => {
      async function onLoadJiraTicketData() {
        loading.setLoading(true)
        const results = await get(`get_jira_tickets`, user.user)
        if (results.status === 0) {
          setJiraTicketsData(results.data)

        } else if (results.status >=20 && results.status <=30){
          snackbar.statusCheck(results)
          user.setSessionTokenMatches(false)
        } else snackbar.statusCheck(results)
        loading.setLoading(false)
        }
        onLoadJiraTicketData()

    }, [])

 
    useEffect(() => {
      jiraTicketChartData.datasets[0].data = Object.values(jiraticketsData.pie_chart);
  }, [jiraticketsData]);




    const jiraTicketChartData = {
      labels: ['backlog', 'in progress', 'in review'
      ],

      datasets: [
        {
          backgroundColor: [
            'blue',
            'orange',
            'green'
          ],
          data:  jiraticketsData.pie_chart
        }
      ]
    }