javascript - 这个 React 代码如何转换为类表示?

标签 javascript reactjs

我试图理解下面的代码,它来自 Redux 示例 TODOMVC , 可以用类符号来写。 代码是

const App = ({todos, actions}) => (
  <div>
    <Header addTodo={actions.addTodo} />
    <MainSection todos={todos} actions={actions} />
  </div>

我尝试了以下但它不起作用,我得到 Warning: App(...): When calling super() inApp, make sure to pass up the same Prop 你的组件的构造函数被传递。

class App extends React.Component {
  constructor({todos, actions}) {
      super({todos, actions});
      this.todos = todos;
      this.actions = actions;
  }

  render() {
      return(
        <div>
          <Header addTodo={this.actions.addTodo} />
          <MainSection todos={this.todos} actions={this.actions} />
        </div>
      )
  }
}

最佳答案

传递给 App 的是 props({ todos, actions }) 只是从 props 解构。这应该有效:

class App extends React.Component {

  render() {
    const { todos, actions } = this.props;
    return(
      <div>
        <Header addTodo={actions.addTodo} />
        <MainSection todos={todos} actions={actions} />
      </div>
    )
  }
}

通过在构造函数中设置 this.todo = todos,您将设置一个实例级别的属性。这意味着如果 props 稍后更改,HeaderMainSection 将不会更新。

关于javascript - 这个 React 代码如何转换为类表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49341321/

相关文章:

javascript - 从外部网络访问时缓存 css/js

javascript - 如何使用 Javascript 更改本地存储中项目的值

twitter-bootstrap - React.js 渲染与 Bootstrap 3 的差异

reactjs - 有没有一种方法可以在胜利折线图的最后一个数据点上绘制一个点以进行 native react

reactjs - Apollo 客户端不显示错误信息

javascript - React 正在重新呈现我的列表,即使数组中的每个子项都有其唯一的键

javascript - Angular 5 和 Google Maps v3 Api - 从 map "click"事件获取坐标

javascript - 'opcode -1' 在 Chrome 中是什么意思?

javascript - Typescript(或 Javascript)Fetch API 异步/等待错误处理

javascript - 文件保护程序的 XMLHttpRequest 折旧的替代方案是什么?