我有一个处理相当大的数据集的组件,我已经创建了一个围绕数组的代理包装器,可以帮助处理重复操作,比如排序。
我想确保如果数据(data
道具)作为数组传递到我的组件中,它会将代理包裹起来。换句话说,就像这样:
constructor(props, ...args) {
if (props.data && !props.data.isData) {
props.data = new Proxy(props.data, proxyHandlers);
}
super(props, ...args);
}
(以及componentWillReceiveProps中类似的东西)。
这不起作用,因为React锁定道具使其不可变。 React-y实现这个目的的正确方法是什么?
答案 0 :(得分:1)
您应该使用更高阶的组件将道具转换为您想要的。
像
这样的东西const props => {
if (props.data && !props.data.isData) {
const newData = new Proxy(props.data, proxyHandlers);
return <MyOldComponent data={newData} />;
}
return null;
}