如何确保React道具的类型正确

时间:2017-10-10 12:36:09

标签: javascript reactjs ecmascript-6

我有一个处理相当大的数据集的组件,我已经创建了一个围绕数组的代理包装器,可以帮助处理重复操作,比如排序。

我想确保如果数据(data道具)作为数组传递到我的组件中,它会将代理包裹起来。换句话说,就像这样:

constructor(props, ...args) {
  if (props.data && !props.data.isData) {
    props.data = new Proxy(props.data, proxyHandlers);
  }

  super(props, ...args);
}

(以及componentWillReceiveProps中类似的东西)。

这不起作用,因为React锁定道具使其不可变。 React-y实现这个目的的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您应该使用更高阶的组件将道具转换为您想要的。

这样的东西
const props => {
  if (props.data && !props.data.isData) {
    const newData = new Proxy(props.data, proxyHandlers);
    return <MyOldComponent data={newData} />;
  }
  return null;
}