子コンポーネントのcenter
プロパティに更新コンポーネントのaddress
を親コンポーネントに渡したいとします。より具体的には、AppコンポーネントからBaseMapコンポーネントまでです。しかし、私はそれを動作させるように見えることはできません。助けることができる目の新鮮なペアは評価されるだろう!React JSの親子コンポーネントの更新された状態を渡す
これは私のコード(私はフェッチ機能を削除し、それはあなたを気にしないだろうので、それだけで正常に動作し、私はちょうど私の子コンポーネントの状態を更新する必要があります。)である:
親:
class App extends Component {
constructor(props) {
super(props);
this.state = {
avatar: '',
username: 'nickname93',
realName: '',
location: '',
followers: '',
following: '',
repos: '',
address: ''
}
}
render() {
return (
<div>
<SearchBox fetchUser={this.fetchUser.bind(this)}/>
<Card data={this.state} />
<BaseMap center={this.state.address}/>
</div>
);
}
fetchApi(url) {
// some fetch functionality
}
fetchUser(username) {
let url = `https://api.github.com/users/${username}`;
this.fetchApi(url);
}
componentDidMount() {
let url = `https://api.github.com/users/${this.state.username}`;
this.fetchApi(url);
}
}
と子コンポーネント:
this.props.center
の代わり
this.state.center
を使用して
export default class BaseMap extends React.Component {
constructor(props) {
super(props);
this.state = {
center: [24, 56],
zoom: 11
}
}
render() {
return (
<Col md={10} mdPull={1}>
<div className="map">
<GoogleMap
bootstrapURLKeys={'AIzaSyBhzwgQ3EfoIRYT70fbjrWASQVwO63MKu4'}
center={this.state.center}
zoom={this.props.zoom}>
</GoogleMap>
</div>
</Col>
);
}
}