Javascript 从JSON访问数据返回;“未定义”;
我正在React with Recharts中使用静态json文件中的数据进行数据可视化。当用户单击条形图时,该值将传递给应用程序,并置于状态(state.dayview[]),我希望将该特定图表区域的特定数据呈现给浏览器。因此,我希望通过将完整json中的日期与在图表上单击的日期相匹配,有条件地呈现DayView组件 我有状态(state.data)的json,我可以记录状态,没有问题。但是,当我尝试访问json对象中的特定数据(例如:this.state.data.date)时,该值返回“undefined”。 下面我有一个map方法可以很好地工作,但是filter方法显然失败了,因为没有检索到“date”键。 我错过了什么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
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是一个数组,它在objectifdata
是一个数组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