[英]Changing props of child component with onchange in React
我正在嘗試使用select更改Chart組件的屬性。 但是,即使我可以通過控制台看到url
變量中的更改,URL值也不會在Chart
更改為data_stat2.json
。
select
的更改是否應該觸發新的渲染以實際更改Chart中的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>
);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.