yezihaohao / react-admin

:sparkles: react-admin system solution : react 后台管理系统解决方案
https://admiring-dijkstra-34cb29.netlify.com/
MIT License
6.64k stars 1.87k forks source link

同一页面绘制多个Echarts,数据全部变为最后一个 #62

Closed cchang1986 closed 5 years ago

cchang1986 commented 5 years ago

在同一页面绘制了8个Echarts,但最后出来的效果所有图表都是最后一个图表的数据 相关代码如下: 循环中调用
propsObj = { data: data, date: date, title: title };

        component.push(
            <div className="gutter-box" key={index}>
                <Card title={title} bordered={false}>
                    <EchartsArea {...propsObj}/>
                </Card>
            </div>
        );
yezihaohao commented 5 years ago

每次循环传入组件的propsObj对象值是一样的?

zhoujinzong commented 5 years ago

每次传入的propsObj对象值都不一样,循环中把得到的数据处理了之后再每个propsObj对象中赋值,然后return出去,得到的结果是一个对象数据,再给render进行渲染,第一张图是处理循环结果return的函数部分代码,第二个张图是结果集,第三第四是每一个对象的propsObj,都是不同的,第五张图是echartArea的设置,每次进入echartArea组件的时候得到的值也是不同的,页面也成功渲染出来了,不过最后曲线显示的都是最后一组的数据的,一直想不明白是哪里有设置的错误,请指教

1540436846 1540437158 1540438178 1540438193 1540438497

yezihaohao commented 5 years ago

截图的代码看不出什么问题,还是希望能够提供一个可复现的demo地址。

zhoujinzong commented 5 years ago

我这边在原框架处理了一下只显示了我代码的曲线部分,希望能够得到问题的解答

react-admin-master.zip

yezihaohao commented 5 years ago

@zhoujinzong 你在EchartsArea的render里面打印option看看,最后都是同一个对象,简单的做法就是用函数生成这个option或者把option变量提到class里面生成。 qq 20181027144253 qq 20181027150124

zhoujinzong commented 5 years ago

解决了,非常感谢