Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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
Javascript 如何从React js中的状态获取图表js饼图的数据?_Javascript_Reactjs_React Native_State - Fatal编程技术网

Javascript 如何从React js中的状态获取图表js饼图的数据?

Javascript 如何从React js中的状态获取图表js饼图的数据?,javascript,reactjs,react-native,state,Javascript,Reactjs,React Native,State,由于我是新手,我一直在努力将数据从我的状态动态传递到chartjs…我需要的是当用户更新文本框并要求输出时,饼图应根据输出自动更新自身…我已将输出值存储在状态中,但饼图不允许我将状态作为数据传递 下面是代码沙盒的链接 我尝试过为饼图创建一个函数,但未能通过…任何帮助都将不胜感激…谢谢 我认为代码有一些问题。 此.PieChart函数现在不返回任何内容。通过快速浏览代码,我可以看出您正试图通过这个.PieChart函数传递PieChart组件所需的道具。返回所需的组件属性,并使用括号在JSX内调

由于我是新手,我一直在努力将数据从我的状态动态传递到chartjs…我需要的是当用户更新文本框并要求输出时,饼图应根据输出自动更新自身…我已将输出值存储在状态中,但饼图不允许我将状态作为数据传递

下面是代码沙盒的链接


我尝试过为饼图创建一个函数,但未能通过…任何帮助都将不胜感激…谢谢

我认为代码有一些问题。 此.PieChart函数现在不返回任何内容。通过快速浏览代码,我可以看出您正试图通过这个.PieChart函数传递PieChart组件所需的道具。返回所需的组件属性,并使用括号在JSX内调用函数,将所需参数传递给函数

PieChart = (Gross,totalTax) => {
let GrossPrice = Gross  ;
let TotalTax = totalTax ;
let data = [GrossPrice,TotalTax]
let Pie = {
        labels: ['Total Tax', 'Gross Price'],   
        datasets: [{
            data: data,
            backgroundColor: [
                '#1ca5b6',
                '#89ba2b',
            ],

        }]

    }

}
return Pie; //or whatever data you need for the component
而且

此外,请记住使用正确的命名约定。函数应为驼峰式,this.PieChart应命名为this.PieChart。尝试为组件和函数使用不同的名称。这将解决你可能遇到的许多问题


更新:我已经更新了你共享的沙盒。希望这有帮助。

我想我找到了解决特定问题的方法…我命令使用状态动态更新piechart中的数据,我们在constructorprops中创建了一个状态,如下所示

constructor(props) {
        super(props);
        this.state = {
            income: '',
            percent: '',
            totalTax: '',
            grossPrice: '',
            otherValues: '',
            Data: {} 
        }

    }
PieChart = (Gross,totalTax) => {
        let runscore = [Gross,totalTax];
        this.setState({
            Data: {
                labels: [
                    'Gross Price',
                    'Total Tax',

                ],
                datasets: [
                    {
                        data: runscore,
                        backgroundColor: [
                            '#1ca5b6',
                            '#89ba2b',
                        ]
                    }
                ]
            }
        });


        }
然后我使用componentDidMount挂载PieChart的初始状态,如下所示

componentDidMount() {

        let runscore = [100,200];



        this.setState(
            {
                Data: {
                    labels: [
                        'Purple',
                        'Yellow',

                    ],
                    datasets: [
                        {

                            data: runscore,
                            backgroundColor: [
                                '#1ca5b6',
                                '#89ba2b',

                            ]
                        }
                    ]
                }
            });


    }
然后我创建了一个函数PieChart=Gross,totalTax,它从另一个函数中获取数据,并用它来设置数据中的状态,比如

constructor(props) {
        super(props);
        this.state = {
            income: '',
            percent: '',
            totalTax: '',
            grossPrice: '',
            otherValues: '',
            Data: {} 
        }

    }
PieChart = (Gross,totalTax) => {
        let runscore = [Gross,totalTax];
        this.setState({
            Data: {
                labels: [
                    'Gross Price',
                    'Total Tax',

                ],
                datasets: [
                    {
                        data: runscore,
                        backgroundColor: [
                            '#1ca5b6',
                            '#89ba2b',
                        ]
                    }
                ]
            }
        });


        }

目前,这并不是更新与当前状态同步的状态,但我已经完成了工作…我希望这对其他人有所帮助…

Hello Rajat,当呈现道具时,您传递的数据的值为this。pieChart基本上会返回未定义的值,因为方法pieChart需要Gross,totalTax作为参数。如果你能展示一个真实的演示,那么你就可以更轻松地进行dubug。嗨,sohan…如果我添加了整个代码,这样你就可以看一看…我不知道如何添加实时演示,它真的很紧急…你能用代码创建一个代码沙盒吗?我已经更新了sohan的问题。。。这是我更新了您共享的沙盒的沙盒链接。希望这就是你所需要的。嘿..馅饼仍然有问题,并更新相同的值…但我想我可以从这里开始工作…谢谢你的时间…我不完全确定你的要求。我确实试图消除我看到的一些错误。