Javascript 为什么要中断';console.log';在无状态函数表达式中?

Javascript 为什么要中断';console.log';在无状态函数表达式中?,javascript,reactjs,syntax,components,Javascript,Reactjs,Syntax,Components,我相信这只是语法问题。如何在无状态函数表达式中console.log const Layer = (props) => ( console.log(props); //breaks ) 它会中断,因为您隐式返回了console.log,并且应该返回一些有效的jsx内容 添加花括号并显式返回组件: const Layer = (props) => { console.log(props); return <div/> //return a valid Rea

我相信这只是语法问题。如何在无状态函数表达式中
console.log

const Layer = (props) => (
  console.log(props); //breaks
)

它会中断,因为您隐式返回了
console.log
,并且应该返回一些有效的jsx内容

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

const Layer = (props) => { 
  console.log(props);
  return <div/> //return a valid React component
};
const层=(道具)=>{
控制台日志(道具);
return//返回有效的React组件
};

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

const Layer = (props) => console.log(props) || (
  ...whatever component does
);
const无状态组件=props=>{
控制台日志(道具);
返回(
{道具,随便什么}
)
}
请记住,在功能组件中,没有呈现方法。 JSX应该写在函数的返回部分。这不是具体的情况。这就是arrow函数本身的行为。
祝您好运编码:)

什么是模板?一个有效的jsx内容我想您的意思是一个React组件。:)控制台日志(道具)//这是您的
return
语句吗?实际上,它返回的
undefined
仍然中断。另外,请注意为函数体添加了
{}
,纯
=>
返回立即语句,这样您就可以使用
=>
,但您需要
=>{console.log(props);return
}`请更正conosle!
const StatelessComponent = props => {
   console.log(props);
   return (
      <div>{props.whatever}</div>
   )
}