删除mapStateToProps中的属性

时间:2016-10-26 09:31:36

标签: javascript redux react-redux material-ui

我使用redux组件包装材质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"/>

jsfiddle

是否有更简单的方法可以从ownProps中的mapStateToProps中删除某些内容而不是创建包装器组件?

1 个答案:

答案 0 :(得分:1)

你可以通过提供connect的第三个参数mergeProps的函数来实现,默认为:

function mergeProps(stateProps, dispatchProps, ownProps) {
  return Object.assign({}, ownProps, stateProps, dispatchProps);
}

编写您自己的版本,挑选您要发送给组件的道具。