【发布时间】:2017-05-24 17:50:53
【问题描述】:
我正在尝试让一个选择选项更改 ReactJS 中组件的一个元素。
“Data____”是用于折线图的数据对象。但是,在渲染下
我的逻辑是这样的:
选择值有一个 onChange 函数,该函数将在选择不同年份时调用 handleChange。调用 handleChange 后,它将运行 if 语句以查看字符串是否与列出的 4 个选项等效。一旦找到它,它将“this.value”设置为实际的数据对象。
然后数据对象将传递给 LineTooltip 中的“数据”元素 "this.value"
但是,错误是未定义值,但我不确定它的含义。
class SimpleLineChart extends Component{
constructor(props) {
super(props);
this.state = {value: "Data2017"};
this.handleChange = this.handleChange.bind(this);
}
handleChange(event){
if (event.target.value == "Data2014"){
this.value = Data2014;
}
else if (event.target.value == "Data2015") {
this.value = Data2015;
}
else if (event.target.value == "Data2016") {
this.value = Data2016;
}
else {
this.value = Data2017;
}
this.setState({value: event.target.value});
}
render() {
return (
<div className = "retentionlinetooltipchart">
<select value={this.state.value} onChange={this.handleChange} className = "yearrange">
<option value="Data2014">2014</option>
<option value="Data2015">2015</option>
<option value="Data2016">2016</option>
<option value="Data2017">2017</option>
</select>
<LineTooltip
title={title}
data={this.value}
width={width}
height={height}
chartSeries={chartSeries}
x={x}
/>
</div>
)
}
}
【问题讨论】:
-
你必须在构造函数中初始化
this.value,否则在select发生变化之前它是未定义的。 -
这成功了!谢谢!
标签: reactjs