javascript - "Stateless function components cannot be given refs"是什么意思?

标签 javascript reactjs redux react-redux

我有这个:

const ProjectsSummaryLayout = ({projects}) => {
   return (
      <div className="projects-summary col-md-10">
          <h3>Projects</h3>
          <ul>
              { projects.map(p => <li key={p.id}>{p.contract.client}</li>) }
          </ul>
      </div>
   )
}

const ProjectsSummary = connect(
   state => ({projects: state.projects})
)(ProjectsSummaryLayout)

我得到:

Warning: Stateless function components cannot be given refs (See ref "wrappedInstance" in ProjectsSummaryLayout created by Connect(ProjectsSummaryLayout)). Attempts to access this ref will fail.

它想告诉我什么?我真的做错了什么吗?

我看到关于这个的讨论here但不幸的是我根本不明白这个结论。

最佳答案

在 React 中,refs may not be attached to a stateless component .

React Redux 3ref 附加到您提供给它的组件,不管它是否是无状态的。您看到的警告来自 React,因为在内部,React Redux 3 将 ref 附加到您提供的无状态组件 (ProjectsSummaryLayout)。

根据 this GitHub comment,您没有做错任何事,您可以安全地忽略该警告。

在 React Redux 4 中,默认情况下没有 ref 附加到包装组件,这意味着如果您升级到 React Redux 4,警告应该消失。

关于javascript - "Stateless function components cannot be given refs"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35952607/

相关文章:

javascript - Cloud Foundry 中的绑定(bind)服务不起作用

javascript - Angular ng-repeat 值集

javascript - 无法组合Reducers()

javascript - 无法将 video.js 组件包装在 react-loadable 中

javascript - React - 更新父组件的滚动位置、setState 还是使用引用?

react-native - 不弹出 Redux 的测试 Jest React-Native Expo CRNA

javascript - 下载时重命名文件,但不适用于 AWS S3

javascript - React Component 不随状态变化而更新

javascript - 在去路线之前显示进度条

javascript - 如何在 Storybook 中模拟 Next.js Image 组件?