如何console.log()这个函数?

How to console.log() this function?

我想为 React-Native 生成​​ JSX,但我确实想使用 console.log().

检查每个 key/value

我追求的是:

{Object.keys(this.state.types).map((obj) => (
          console.log(obj); <-- This guy
          <Item label={obj[TYPE]} value={obj[ID]} />
          ))}

但是抛出一个错误"Unexpected token"

如何在地图中调试我的值?

=> ( 中的圆括号告诉函数它正在 returning 一个对象(JSX 被转译为 JS 对象)。您想要一个函数体 运行 console.log(),然后 return <Item> 元素。

将圆括号转换为大括号,并添加 return 语句:

{Object.keys(this.state.types).map((obj) => {
  console.log(obj); <-- This guy
  return (
    <Item label={obj[TYPE]} value={obj[ID]} />
  );
})}

您可以使用逗号运算符:

 {Object.keys(this.state.types).map((obj) => (
      console.log(obj), <-- This guy
      <Item label={obj[TYPE]} value={obj[ID]} />
      ))}

评估语句然后丢弃它,或者您可以使用 ||运算符将评估 console.log 哪个 returns false 然后将 return React 元素:

 {Object.keys(this.state.types).map((obj) => console.log(obj) || (

      <Item label={obj[TYPE]} value={obj[ID]} />
      ))}

但是,两者都相当 hacky,我建议您将箭头函数转换为多线箭头,只需使用 return:

 {Object.keys(this.state.types).map((obj) => { 
      console.log(obj);
      return <Item label={obj[TYPE]} value={obj[ID]} />
  })}

附带说明 - 不要忘记在从数组 return 编辑的对象上设置 key 属性,否则你会收到性能下降和警告(您目前没有这样做)。