javascript - 用状态来 react 条件渲染

标签 javascript reactjs user-interface recharts

我有两个选择选项,当我选择两支球队时,我必须在图表中显示两支球队的数据:主队客队

这是用 codepen 完成的原型(prototype)

目前,当我在下拉列表中选择两个团队时,我只能在图表中显示带有 dataKey 的一条线组件,而不是两个团队的 2 条线组件。

当我在第一个Select中选择Team Home时,如何在React中说显示具有datakey状态值的hometeam线路组件.

{this.state.hometeam && <Line type='monotone' key={'1'} dataKey={this.state.value} stroke='#132908' yAxisId={1} activeDot={{fill: '#132908', stroke: 'none', r: 6}}/>}

其他选择中的客队也是如此

{this.state.awayteam && <Line type='monotone' key={'1'} dataKey={this.state.value} stroke='#132908' yAxisId={1} activeDot={{fill: '#132908', stroke: 'none', r: 6}}/>}

demo我只显示了通用线路组件,不依赖于状态

最佳答案

您的图表由这个单一的 this.state.value 驱动,当选择任一下拉菜单时,该值将被覆盖。我会将其分成该州的两个单独的属性。

state = {
  data: initialState
  hometeamValue: '',
  awayteamValue: ''
}

handleChangeHomeTeam = (e) => {
  this.setState({
    hometeamValue: e.target.value,
  });
};

handleChangeAwayTeam = (e) => {
  this.setState({
    awayteamValue: e.target.value,
  });
};

render(){
  return(
    // ...
    <select value={this.state.hometeamValue} onChange={this.handleChangeHomeTeam}>
      <option value="Betis">Betis</option>
      <option value="Real">Real</option>
    </select>
    <select value={this.state.awayteamValue} onChange={this.handleChangeAwayTeam}>
      <option value="Betis">Betis</option>
      <option value="Real">Real</option>
    </select>
    // ...
    <Line dataKey={this.state.hometeamValue} ... />}
    <Line dataKey={this.state.awayteamValue} .../>}
  }
}

关于javascript - 用状态来 react 条件渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55339303/

相关文章:

javascript - onsubmit 不适用于 ajax mysql 验证

arrays - 在处于状态的数组中插入值 - React

javascript - 如何在页面加载时使用四元运算符执行函数

javascript - 如何在 html 中显示简单的 Extjs 6 组件?

javascript - 通过d3 queue().defer()获取的数据什么时候出现

python - PyQt4 问题和在 Python 中登录 WIndow 到主窗口

swift - 使用带有 UI 测试的 Cucumberish 从 Storyboard加载 Controller

java - 如何从多个外部类中调用 JPanel?

javascript - jQuery 在处理程序返回之前不隐藏元素

ReactJS 动态模板(例如用于 A/B 测试 Web 应用程序)