0
내가 한 MapBox과 레이아웃에 의해 현재의 내 라우터를 포장하고 어린이 MapBox 콜백 함수에 전달하고 싶은
:반응 라우터의 자식 요소에 구성 요소 콜백을 전달하는 방법은 무엇입니까?
export default class Post extends React.Component {
mapMoved(map) {console.log('map moved', map)}
render() {
const {post, posts} = this.props;
return (
<div>
{post.title}
<MapBox mapMoved={::this.mapMoved} posts={posts} />
</div>
);
}
}
const mapStateToProps = (state) => ({
post: state.post,
posts: state.posts,
});
export default connect(mapStateToProps)(Post);
export default class PostsList extends React.Component {
renderList() {
const {posts} = this.props;
}
mapMoved(map) {console.log('map moved', map)}
render() {
return (
<div>
{::this.renderList()}
<MapBox mapMoved={::this.mapMoved} posts={this.props.posts} />
</div>
);
}
}
const mapStateToProps = (state) => ({
posts: state.posts,
});
export default connect(mapStateToProps)(PostsList);
원하는 경로 : 두 가지 구성 요소에 내가 MapBox를 반복 콜백을 처리 할 수
<Route path='/posts' component={PostsList} />
<Route path="/posts/:id" component={Post} >
</Route>
현재
<Route component={Layout}>
<Route path='/posts' component={PostsList} />
<Route path="/posts/:id" component={Post} >
</Route>
</Route>
원하는 레이아웃 구성 요소 :
레이아웃 래핑export default class Layout extends React.Component {
mapMoved(map) {}
render() {
return (
<div>
{this.props.children} //I would like to pass mapMoved callback here
<MapBox mapMoved={::this.mapMoved} posts={this.props.posts} />
</div>
);
}
}
const mapStateToProps = (state) => ({
posts: state.posts,
});
export default connect(mapStateToProps)(Layout);
Redux를 사용하고 있습니다. 어쨌든 콜백 함수를 전달해야할까요?
내가 직접 전달할 수처럼 아이들에게 소품을 전달할 수 있습니다? – luzny
하위 구성 요소에서 mapMoved()를 처리하는 방법은 무엇입니까? – luzny
당신은 소품, 즉 this.props.mapMoved (map)을 통해 mapMoved에 접근 할 수있는 하위 구성 요소에 – deowk