我正在用 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"/>

jsfiddle

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

最佳答案

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

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

编写您自己的版本,挑选您想要发送到组件的 Prop 。

关于javascript - 删除 mapStateToProps 中的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40258573/

10-11 12:40