我有一个处理相当大的数据集的组件,并且我创建了一个围绕数组的代理包装器,有助于处理重复的操作,例如排序。
我想确保,如果数据(data
属性)作为数组传递到我的组件中,它会获得包裹在其周围的代理。换句话说,像这样:
constructor(props, ...args) {
if (props.data && !props.data.isData) {
props.data = new Proxy(props.data, proxyHandlers);
}
super(props, ...args);
}
(以及 componentWillReceiveProps 中的类似内容)。
这不起作用,因为 React 锁定了 props 以使其不可变。完成此任务的正确的 React 方法是什么?
最佳答案
您应该使用更高阶的组件将 props 转换为您想要的内容。
类似的东西
const props => {
if (props.data && !props.data.isData) {
const newData = new Proxy(props.data, proxyHandlers);
return <MyOldComponent data={newData} />;
}
return null;
}
关于javascript - 如何确保 React props 的类型正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46666971/