映射迭代器未定义 React.JS

Dar*_*zuh 5 javascript arrays reactjs redux

我正在尝试呈现一个列表,但是当我尝试映射列表时,我无法访问每个单独的元素,因为我 ReferenceError 说 'e' 未定义。我写的对吗?

  render() {
    return (
      <div>
         {console.log(Object.keys(this.props.emojis))} --> Returns the correct list
          Object.keys(this.props.emojis).map(e => (
              {console.log("EMOJI: ",e)}
              <Emoji emote={e} />
          ))
      </div>
    )
 }
Run Code Online (Sandbox Code Playgroud)

May*_*kla 5

像这样写,它会起作用:

render() {
    return (
      <div>
           {            
              Object.keys(this.props.emojis).map((e,i) => {
                 console.log("EMOJI: ",e);
                 return <Emoji key={i} emote={e}/>
              })
            }
      </div>
    )
 }
Run Code Online (Sandbox Code Playgroud)

变化:

  • 您已经在map函数内部,因此无需使用{}for console.log

  • 您正在使用()withmap函数,并且在内部()使用了 2 条语句,这是不允许的 with (),如果您想做一些计算,请始终使用{},并在其中返回一些内容。

建议:在key动态创建 ui 项时始终分配。

如果您需要任何帮助,请告诉我。