Javascript 如何在mapDispatchToProps中访问MapStateTrops添加的属性?
React-Redux提供函数Javascript 如何在mapDispatchToProps中访问MapStateTrops添加的属性?,javascript,reactjs,redux,react-redux,jsx,Javascript,Reactjs,Redux,React Redux,Jsx,React-Redux提供函数connect将Reduxstate和dispatch绑定到React组件(作为属性) 如何访问在函数mapDispatchToProps中通过函数MapStateTrops添加的属性? 例如,我使用函数MapStateTops向组件添加属性propertyFromState,如何在函数mapDispatchToProps中访问属性propertyFromState 我尝试使用参数ownProps访问它,但它是未定义的您无法访问mapDispatchToProps中
connect
将Reduxstate
和dispatch
绑定到React组件(作为属性)
如何访问在函数mapDispatchToProps
中通过函数MapStateTrops
添加的属性?
例如,我使用函数MapStateTops
向组件添加属性propertyFromState
,如何在函数mapDispatchToProps
中访问属性propertyFromState
我尝试使用参数
ownProps
访问它,但它是未定义的您无法访问mapDispatchToProps中的道具。相反,您可以在调用函数时将参数传递给该函数。例如,如果要将道具传递给动作,可以采用多种方式
第一:
function mapDispatchToProps(dispatch) {
return {
onNameChanged: (name) => dispatch({ type: 'NAME_CHANGED', payload: name })
}
}
或
从组件中只需调用这个.props.actions(propertyFromState)。在actions.js中创建操作以接受如下参数
function action1(property){
return { type: 'NAME_CHANGED', payload: property }
}
有用链接:
mapStateToProps()用于从Redux/应用程序状态访问变量
function mapStateToProps(state) {
return {
token: reduxState.token
};
}
可以使用this.props.token在React组件内部访问它
和mapDispatchToProps触发操作事件(调度可能导致应用程序状态更改的操作)
在mapDispatchToProps中无法访问该状态是荒谬的。
有一种替代redux的方法,简单且解决了redux的麻烦。也许这不是一种正确的方法。Chrome的控制台抛出大量错误:警告:无法在现有状态转换期间更新(例如在'render'或其他组件的构造函数中)。渲染方法应该是道具和状态的纯函数;构造函数的副作用是一种反模式,但可以移动到“componentWillMount”。
看起来您正在render方法中进行操作调用。你能把你的代码片段粘贴在这里以获得更好的解决方案吗?
function action1(property){
return { type: 'NAME_CHANGED', payload: property }
}
function mapStateToProps(state) {
return {
token: reduxState.token
};
}
const mapDispatchToProps = (dispatch) => {
return{
send:(variable) =>{dispatch(send(variable))}
}
}