Reactjs 如何在不使用父组件的情况下在两个同级组件之间直接通信?
我有一个父组件C,它是两个子组件a和B。假设我在计算B组件后得到一些数据,我想直接传递给一个组件,而不使用父组件C 我怎样才能做到这一点?有多少种方法可以做到这一点?Reactjs 如何在不使用父组件的情况下在两个同级组件之间直接通信?,reactjs,redux,Reactjs,Redux,我有一个父组件C,它是两个子组件a和B。假设我在计算B组件后得到一些数据,我想直接传递给一个组件,而不使用父组件C 我怎样才能做到这一点?有多少种方法可以做到这一点? 它在这里帮助redux还是上下文API?是的,您可以在这里使用redux与组件A通信,而不使用父组件。将数据从组件B传递给动作创建者,后者随后将动作分派给减速器。reducer将返回您可以从组件A访问的状态(现在保存数据)。您需要将A和B连接到redux存储 假设您希望组件A中的“数据”也可以在组件B中访问 class A ext
它在这里帮助redux还是上下文API?是的,您可以在这里使用redux与组件A通信,而不使用父组件。将数据从组件B传递给动作创建者,后者随后将动作分派给减速器。reducer将返回您可以从组件A访问的状态(现在保存数据)。您需要将A和B连接到redux存储 假设您希望组件A中的“数据”也可以在组件B中访问
class A extends React.Component{
//call this.props.actionCreator and pass it the data
}
export default connect(null, actionCreators)(A)
action creator接收数据,将其包装在action中并发送给reducer。reducer返回数据,该数据成为状态的一部分
class B extends React.Component{
//We can access data as this.props.data here
}
function mapDispatchToProps(state) {
return {data: state.LoginReducer.data};
}
export default connect(mapDispatchToProps, actionCreators)(B)
然后,我们在mapDispatchToProps中指定所需的状态片段,并将其传递给connect助手。“连接”帮助器将数据作为组件B中的this.props.data提供
class A extends React.Component{
//call this.props.actionCreator and pass it the data
}
export default connect(null, actionCreators)(A)
我希望我解释得足够好。是的,您可以在这里使用redux与组件A通信,而无需使用父组件。将数据从组件B传递给动作创建者,后者随后将动作分派给减速器。reducer将返回您可以从组件A访问的状态(现在保存数据)。您需要将A和B连接到redux存储 假设您希望组件A中的“数据”也可以在组件B中访问
class A extends React.Component{
//call this.props.actionCreator and pass it the data
}
export default connect(null, actionCreators)(A)
action creator接收数据,将其包装在action中并发送给reducer。reducer返回数据,该数据成为状态的一部分
class B extends React.Component{
//We can access data as this.props.data here
}
function mapDispatchToProps(state) {
return {data: state.LoginReducer.data};
}
export default connect(mapDispatchToProps, actionCreators)(B)
然后,我们在mapDispatchToProps中指定所需的状态片段,并将其传递给connect助手。“连接”帮助器将数据作为组件B中的this.props.data提供
class A extends React.Component{
//call this.props.actionCreator and pass it the data
}
export default connect(null, actionCreators)(A)
我希望我解释得足够好。如果你不想把你的状态提升到父级,那么
redux
或Context-API
都是一个不错的选择,但是,如果你的项目中没有使用redux
,那么我建议尝试使用Context-API
- redux附带了很多样板代码,将redux仅用于两个组件是过分的
- redux store对您的项目来说是全局的,如果您想使用上下文API在两个同级之间共享数据,您可以使用
上下文提供程序包装这些数据
redux
或Context-API
都是一个不错的选择,但是,如果您的项目中没有使用redux
,那么我建议尝试使用Context-API
- redux附带了很多样板代码,将redux仅用于两个组件是过分的
- redux store对您的项目来说是全局的,如果您想使用上下文API在两个同级之间共享数据,您可以使用
上下文提供程序包装这些数据