javascript - 如何确保 React props 的类型正确

标签 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 锁定了 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/

相关文章:

Javascript For 循环导致意外行为

javascript - "request"和 "response"是从哪里来的,我怎么知道的?

javascript - 如何将来自不同组件的 firebase auth 和 Cloud Firestore 作为单个 firebase 应用程序使用

javascript - 在 PHP 循环中动态创建 jQuery listview

javascript - 从 div 获取值到文本框

javascript - 服务器端渲染 HTML 模板

javascript - 使用点击功能 react JS 渲染元素并将索引传递给点击功能

javascript - 按 > date.now 的日期过滤对象数组

javascript - 在另一个函数中传递函数参数

javascript - 如果不使用 .push() 则无法为全局数组赋值