我无法将父级的状态传递给子级。
我尝试将整个父母的州传递给孩子,但是州的内容本身是undefined
。
另外,我也尝试过使用道具进行类似的尝试,但效果也不佳。
//parent.js
state = {
messages: [],
roomId: this.props.navigation.getParam('roomId')
}
renderImageAction = () => {
return <ImageAction roomId={this.state.roomId} />
}
return(<GiftedChat renderActions={this.renderImageAction}/>)
//child.js
DataBase.saveImage(this.props.roomId).then(alert('done'));
我希望状态或值将传递给子组件,并且那里的值将可用。
答案 0 :(得分:0)
这是我认为最简单的方法。希望这会有所帮助。
class Parent extends React.Component {
constructor(props) {
super(props);
this.state = {
fieldVal: ""
}
}
onUpdate = (val) => {
this.setState({
fieldVal: val
})
};
render() {
return (
<div>
<h2>Parent</h2>
Value in Parent Component State: {this.state.fieldVal}
<br/>
<Child onUpdate={this.onUpdate} />
<br />
<OtherChild passedVal={this.state.fieldVal} />
</div>
)
}
}
class Child extends React.Component {
constructor(props) {
super(props);
this.state = {
fieldVal: ""
}
}
update = (e) => {
console.log(e.target.value);
this.props.onUpdate(e.target.value);
this.setState({fieldVal: e.target.value});
};
render() {
return (
<div>
<h4>Child</h4>
<input
type="text"
placeholder="type here"
onChange={this.update}
value={this.state.fieldVal}
/>
</div>
)
}
}
class OtherChild extends React.Component {
render() {
return (
<div>
<h4>OtherChild</h4>
Value in OtherChild Props: {this.props.passedVal}
</div>
)
}
}
React.render(
<Parent />,
document.getElementById('react_example')
);