javascript - react 。如何将 setState 中的键与数组索引一起使用?

标签 javascript reactjs

所以,这是我的代码。我有一个简单的问题,关于如何将 state 元素与索引 key 一起使用?在这种情况下,我需要为不同的 data 索引元素设置不同的值。

import React, { Component } from 'react';
import {Doughnut} from 'react-chartjs-2';

class Chart extends Component {
    constructor(props) {
        super(props);

        this.state = {
            labels: ["All", "Done", "Active"],
            datasets: [{
                label: "Todos",
                backgroundColor: 'grey',
                borderColor: 'green',
                data: [0, 0, 0]
            }]
        };
    }

    getTodosList = (todos) => {
        const all = [];
        const active = [];
        const done = [];

        todos.filter(todo => {
            if (todo.status === 'active') {
                active.push(todo);
            } else if (todo.status === 'all') {
                all.push(todo);
            } else if (todo.status === 'done') {
                done.push(todo);
            }
        });

        this.setState({
            datasets[0].data[0]: all, // error
            datasets[0].data[1]: active, // error
            datasets[0].data[2]: done // error
        });
    }

最佳答案

很简单:

this.setState({
    datasets: [...this.state.datasets,
        {
            data: [all.length, active.length, done.length]
        }
    ]
});

开始像 Redux 那样思考。使用纯函数。它会对你有所帮助。另外,我根据您的开始数据了解 - 您可能需要使用项目长度...

关于javascript - react 。如何将 setState 中的键与数组索引一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50052971/

相关文章:

javascript - 如果不存在则将对象推送到空数组angularjs

javascript - z-index 排序在 IE 中无法正确呈现

javascript - 将值从一个选项卡传递到 ReactJs 中的另一个选项卡

javascript - 如何设计 react 选择组件的箭头样式?

javascript - 如何获取动态变化的类的 HTML 名称?

javascript - 当可排序被丢弃时会发出警报

javascript - 从 JavaScript 打开图像文件(不适用于手机)

javascript - DropzoneJS : How to get PHP response after upload success?

reactjs - 在 React 中将一组组件作为 Prop 传递

jquery - 如何过渡居中对齐的动态文本?