Javascript 什么是;无状态函数组件不能被指定为refs“;什么意思?
我有这个:Javascript 什么是;无状态函数组件不能被指定为refs“;什么意思?,javascript,reactjs,redux,react-redux,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.co
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)
const ProjectsSummaryLayout=({projects})=>{
返回(
项目
{projects.map(p=>- {p.contract.client}
)}
)
}
const ProjectsSummary=connect(
state=>({projects:state.projects})
)(项目总布置图)
我得到:
警告:无法为无状态函数组件提供ref(请参阅ref
项目中的“wrappedInstance”由创建的mmaryLayout
连接(项目MMARYLAYOUT))。尝试访问此ref将失败
失败
它想告诉我什么?我真的做错了什么吗
我看到了关于这一点的讨论,但不幸的是,我根本不理解结论。在React中
React Redux3将ref
附加到您提供给它的组件,而不管它是否是无状态的。您看到的警告来自React,因为React Redux 3在内部将ref
附加到您提供的无状态组件(ProjectsSummaryLayout
)
你没有做错任何事,根据你的判断,你可以安全地忽略警告
在React-Redux4中,默认情况下,没有任何
ref
附加到包装组件,这意味着如果升级到React-Redux 4,警告应该消失。React有两种常用组件样式
- 功能部件
- 类组件
我希望它能解决您的问题。注意到react dnd存在同样的问题。警告:无法为无状态函数组件提供引用。尝试访问此ref将失败。检查
DragSource(Component)
的渲染方法。这会掩盖问题,在这种情况下,您应该只使用React.forwardRef