Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 从JSON访问数据返回;“未定义”;_Javascript_Json_Reactjs_State_Data Visualization - Fatal编程技术网

Javascript 从JSON访问数据返回;“未定义”;

Javascript 从JSON访问数据返回;“未定义”;,javascript,json,reactjs,state,data-visualization,Javascript,Json,Reactjs,State,Data Visualization,我正在React with Recharts中使用静态json文件中的数据进行数据可视化。当用户单击条形图时,该值将传递给应用程序,并置于状态(state.dayview[]),我希望将该特定图表区域的特定数据呈现给浏览器。因此,我希望通过将完整json中的日期与在图表上单击的日期相匹配,有条件地呈现DayView组件 我有状态(state.data)的json,我可以记录状态,没有问题。但是,当我尝试访问json对象中的特定数据(例如:this.state.data.date)时,该值返回“u

我正在React with Recharts中使用静态json文件中的数据进行数据可视化。当用户单击条形图时,该值将传递给应用程序,并置于状态(state.dayview[]),我希望将该特定图表区域的特定数据呈现给浏览器。因此,我希望通过将完整json中的日期与在图表上单击的日期相匹配,有条件地呈现DayView组件

我有状态(state.data)的json,我可以记录状态,没有问题。但是,当我尝试访问json对象中的特定数据(例如:this.state.data.date)时,该值返回“undefined”。 下面我有一个map方法可以很好地工作,但是filter方法显然失败了,因为没有检索到“date”键。 我错过了什么

class App extends React.Component {
    constructor(props) {
        super(props)
            this.state = {
                data,
                dayview: []
            }
        }

    render() {
        return (
            <main>
                <div>
                    <StackedBarChart
                        data={this.state.data}
                        handleBarClick={this.handleBarClick} />
                </div>

                <section>
                    {this.state.dayview && this.state.data.filter(x =>
                        this.state.data.date === this.state.dayview.date).map(item => {
                            return <DayView
                                key={item.index}
                                date={item.date}
                                high={item.high}
                                low={item.low}
                                medium={item.medium} />
                        })
                    }
                </section>
            </main>
        )
    }
}

我真的很感谢任何意见

您不能像这样访问数组中对象的属性
this.state.data.date
。 Javascript将在数组中查找
数据
,而不是在
数据
数组中的对象中

要访问数组中的对象,可以执行以下操作:

此.state.data[0].日期

但我相信您想要修改代码:

<section>
  {this.state.dayview && this.state.data.filter(x =>
    x.date === this.state.dayview[0].date).map(item => {
    return <DayView
      key={item.index}
      date={item.date}
      high={item.high}
      low={item.low}
      medium={item.medium} />
  })
  }
</section>

(例如:this.state.data.date),该值返回“undefined”
很明显,它没有找到日期,这就是它未定义的原因。它应该是dayview,因为我认为datview是一个数组,它在objectif
data
是一个数组
this.state.data.date
将不起作用。啊,数据是一个数组。你能告诉我一个更好的进入方式吗?是的!谢谢你,真管用!谢谢你帮了一个新手。
<section>
  {this.state.dayview && this.state.data.filter(x =>
    x.date === this.state.dayview[0].date).map(item => {
    return <DayView
      key={item.index}
      date={item.date}
      high={item.high}
      low={item.low}
      medium={item.medium} />
  })
  }
</section>
this.state.dayview[0].date