React JS 通过 onClick 更改图表 html 代码
React JS Change graph html code by onClick
嗨,我开始学习了react.js
我要做的是按下下面的按钮
<Button
color="primary"
onClick={this.state.clickMonth}>
html 代码将加载
clickMonth = () =>{
this.setState({
month: <Line data={chartjs.monthLine.data} options=
{chartjs.monthLine.options} />
})
}
然而,它不起作用。如果需要,我可以提供更多信息。感谢您的帮助
您的代码应该如下所示。
react 中的事件处理函数可以用 this.functionName 调用,但不能用 this.state.functionName 调用。在您的情况下,它应该是 this.clickMonth 但不是 this.state.clickMonth
现在单击您正在渲染 Line 组件的按钮。因此,要在单击按钮时渲染 Line 组件,您可以将布尔标志设置为 true 并相应地渲染 Line 组件,就像我在下面所做的那样
constructor(props){
super(props);
this.state = {
showLine: false,
showLine1: false
}
}
clickMonth = () =>{
this.setState({
showLine: true,
showLine1: false
})
}
clickYear = () =>{
this.setState({
showLine: false,
showLine1: true
})
}
render(){
const { showLine, showLine1 } = this.state;
return(
<div>
{showLine && <Line data={chartjs.monthLine.data} options=
{chartjs.monthLine.options} />}
{showLine1 && <Line data={chartjs.monthLine.data} options=
{chartjs.monthLine.options} />}
<Button color="primary" onClick={this.clickMonth} />
<Button color="primary" onClick={this.clickYear} />
</div>
)
}
嗨,我开始学习了react.js
我要做的是按下下面的按钮
<Button
color="primary"
onClick={this.state.clickMonth}>
html 代码将加载
clickMonth = () =>{
this.setState({
month: <Line data={chartjs.monthLine.data} options=
{chartjs.monthLine.options} />
})
}
然而,它不起作用。如果需要,我可以提供更多信息。感谢您的帮助
您的代码应该如下所示。
react 中的事件处理函数可以用 this.functionName 调用,但不能用 this.state.functionName 调用。在您的情况下,它应该是 this.clickMonth 但不是 this.state.clickMonth
现在单击您正在渲染 Line 组件的按钮。因此,要在单击按钮时渲染 Line 组件,您可以将布尔标志设置为 true 并相应地渲染 Line 组件,就像我在下面所做的那样
constructor(props){
super(props);
this.state = {
showLine: false,
showLine1: false
}
}
clickMonth = () =>{
this.setState({
showLine: true,
showLine1: false
})
}
clickYear = () =>{
this.setState({
showLine: false,
showLine1: true
})
}
render(){
const { showLine, showLine1 } = this.state;
return(
<div>
{showLine && <Line data={chartjs.monthLine.data} options=
{chartjs.monthLine.options} />}
{showLine1 && <Line data={chartjs.monthLine.data} options=
{chartjs.monthLine.options} />}
<Button color="primary" onClick={this.clickMonth} />
<Button color="primary" onClick={this.clickYear} />
</div>
)
}