删除 mapStateToProps 中的属性
Removing properties in mapStateToProps
我正在用 redux 组件包装 material TextField。一些属性应该只在 mapStateToProps
中使用,而不是传递给组件本身。否则,我会收到 Unknown prop
警告。指定未定义的值没有帮助。
function mapStateToProps(state = {}, ownProps) {
var dataKey = ownProps.dataKey;
return {
value: state[dataKey],
dataKey: undefined
}
}
const store = createStore(reducer, {stuff: 123});
const toDraw = <TextInput dataKey="stuff"/>
有没有更简单的方法可以从 mapStateToProps
中的 ownProps
中删除一些东西而不是创建包装器组件?
您可以通过为 connect 的第三个参数 mergeProps
提供一个函数来做到这一点,默认为:
function mergeProps(stateProps, dispatchProps, ownProps) {
return Object.assign({}, ownProps, stateProps, dispatchProps);
}
编写您自己的版本,挑选您要发送到组件的道具。
我正在用 redux 组件包装 material TextField。一些属性应该只在 mapStateToProps
中使用,而不是传递给组件本身。否则,我会收到 Unknown prop
警告。指定未定义的值没有帮助。
function mapStateToProps(state = {}, ownProps) {
var dataKey = ownProps.dataKey;
return {
value: state[dataKey],
dataKey: undefined
}
}
const store = createStore(reducer, {stuff: 123});
const toDraw = <TextInput dataKey="stuff"/>
有没有更简单的方法可以从 mapStateToProps
中的 ownProps
中删除一些东西而不是创建包装器组件?
您可以通过为 connect 的第三个参数 mergeProps
提供一个函数来做到这一点,默认为:
function mergeProps(stateProps, dispatchProps, ownProps) {
return Object.assign({}, ownProps, stateProps, dispatchProps);
}
编写您自己的版本,挑选您要发送到组件的道具。