用方法反应功能组件

chr*_*cn7 9 javascript reactjs

如果我们想创建一个功能性无状态组件,但我们想要能够访问 props 的方法,我们该怎么做?当涉及到这样的事情时,是否有一般规则或最佳实践

例如

function Stateless(props) {
   function doSomething(props) {
      console.log(props);
   }
  doSomething() // logs 'undefined'
return (
  <div> some stuff </div>
}
Run Code Online (Sandbox Code Playgroud)

内部道具始终不是给出的道具,至少在我的经验中是这样。

如果我不需要状态(使用 Redux)但仍然需要访问 props 的方法,那么使用类而不是无状态函数仍然是一个好习惯吗?

jay*_*rjo 4

在函数式组件中使用函数是完全可以的。事实上,最近在 React 16.8 中引入的React hooks都是为了通过特殊的 hooks将状态和生命周期事件引入功能组件,从而使功能组件变得更加方便。

但正如其他人提到的,您需要向函数传递适当的参数:doSomething(props)或者根本不传递参数,相应地,永远不要在函数声明本身中期望它们:function doSomething()