javascript - 在 React 中使用 onchange 改变子组件的 props

标签 javascript reactjs

我正在尝试使用选择更改图表组件的 Prop 。但 url 值不会更改为 Chart 中的 data_stat2.json,即使我可以通过控制台看到 url 变量中的更改。

select 中的更改是否应该触发新的渲染以实际更改图表中的 this.props.url

var App = React.createClass({
render: function() {
var url ="data_stat1.json"
function logChange(val) {
 url = 'data_' + val + '.json';
   console.log(url)};
return (
  <Grid style={{padding: 10}}>
    <Row>
      <Col md={8}>
        <Select
          name="stats"
          value="stat1"
          options={[
              { value: "stat1", label: "Stat1" },
              { value: "stat2", label: "Stat2" }
          ]}
          multi = {false}
          clearable = {false}
          searchable={false}
          onChange = {logChange}
        />
      </Col>
    </Row>
    <Row>
      <Chart
        url = {url}
      />
    </Row>
  </Grid>
);
}
});

最佳答案

使用 State 和 setState 来处理将更改的数据传递给组件:

var App = React.createClass({
 getInitialState: function() {
   return {
     url: "data_stat1.json",
   };
 },
 handleUpdate: function(url) {
    this.setState({
      url: url,
    });
 }, 
 render: function() {

return (
  <Grid style={{padding: 10}}>
    <Row>
      <Col md={8}>
        <Select
          name="stats"
          value="stat1"
          options={[
              { value: "stat1", label: "Stat1" },
              { value: "stat2", label: "Stat2" }
          ]}
          multi = {false}
          clearable = {false}
          searchable={false}
          onChange = {this.handleUpdate}
        />
      </Col>
    </Row>
    <Row>
      <Chart
        url = { this.state.url }
      />
    </Row>
  </Grid>
);
}
});

关于javascript - 在 React 中使用 onchange 改变子组件的 props,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32041552/

相关文章:

javascript - 当登录状态处于组件状态时,如何使用 react-router 实现依赖于登录的路径?

reactjs - React Native JS 调试/热重载在物理设备上不起作用

javascript - 为什么nodejs中http的CreateServer中调用了两次回调

Javascript:使用原型(prototype)函数的问题

javascript - 在与 Ramda 的 react 中编写 setState

css - 反作用力背景色全高

javascript - 为许多 ajax 调用显示 ajax 微调器。

javascript - 变量在控制台中返回正确的值,但未定义

reactjs - 如何从react-router获取当前位置?

reactjs - 只有在使用 'IterableIterator<number>' 标志或使用 '--downlevelIteration' 或更高的 '--target' 时,才能迭代类型 'es2015'