为什么在无状态函数表达式中破坏“ console.log”?

nir*_*gev 4 javascript syntax components reactjs

我确定这只是语法问题。如何console.log在无状态函数表达式内?

const Layer = (props) => (
  console.log(props); //breaks
)
Run Code Online (Sandbox Code Playgroud)

Jan*_*art 7

无需更改组件的结构即可使用花括号并添加返回值。你可以做:

const Layer = (props) => console.log(props) || (
  ...whatever component does
);
Run Code Online (Sandbox Code Playgroud)


Dzi*_*nka 7

const StatelessComponent = props => {
   console.log(props);
   return (
      <div>{props.whatever}</div>
   )
}
Run Code Online (Sandbox Code Playgroud)

请记住,在功能组件中没有渲染方法。你的 JSX 应该写在函数的返回部分。那不是反应特定的情况。这就是箭头函数本身的行为。祝你编码好运:)


Kar*_*rim 5

它会中断,因为您隐式返回未定义的调用结果console.log,但您应该返回有效的反应组件

添加大括号并显式返回组件:

const Layer = (props) => { 
  console.log(props);
  return <div/> //return a valid React component
};
Run Code Online (Sandbox Code Playgroud)

  • 你的“return”声明在哪里?事实上,它返回“undefined”,但仍然会中断。另外,请注意在函数体中添加了 `{ }`,普通的 `=&gt; ` 返回立即语句,因此您可以使用 `=&gt; &lt;div /&gt;` 但需要 `=&gt; { console.log(props); 返回 &lt;div /&gt;` }` (2认同)