代码之家  ›  专栏  ›  技术社区  ›  SkyeBoniwell

在map函数中设置变量

  •  2
  • SkyeBoniwell  · 技术社区  · 6 年前

    我有一个函数返回这个jsx,它混合了如下代码:

    showMedia = () => {
    
      return (
                <div>
                    {
                        <div id="mainContent">
                            {props.files.map((file) =>
                                const ext = fileExtension(file.name),
                                const icon = fileIcon(ext),
                                const isImg = isImage(ext),
                                <div key={file.id}>
                                    <DisplayResults
                                        fileId={file.id}
                                        downloadName={file.downloadName}
                                        fileTitle={file.title}
                                        isImg={isImg}
                                        icon={icon}
                                        ext={ext}
                                    />
                                </div>
                            )}
                        </div>
                    }
                </div>
             );
    }
    

    在我的编辑器中,它说它期望在.map之后设置的常量变量有一个{

    我没有使用正确的语法吗?

    谢谢!

    2 回复  |  直到 6 年前
        1
  •  2
  •   Tholle    6 年前

    因为你没有功能体 {} 对于arrow函数,它需要隐式返回的表达式。

    给它一个函数体并声明变量并返回jsx:

    showMedia = () => {
      return (
        <div>
          {
            <div id="mainContent">
              {props.files.map(file => {
                const ext = fileExtension(file.name);
                const icon = fileIcon(ext);
                const isImg = isImage(ext);
                return (
                  <div key={file.id}>
                    <DisplayResults
                      fileId={file.id}
                      downloadName={file.downloadName}
                      fileTitle={file.title}
                      isImg={isImg}
                      icon={icon}
                      ext={ext}
                    />
                  </div>
                );
              })}
            </div>
          }
        </div>
      );
    };
    
        2
  •  2
  •   Tholle    6 年前

    您必须在map函数中添加“return”,因为map总是希望返回某些内容,所以可以通过添加以下内容来解决您的问题

    {props.files.map(file => {
      return (
        <div key={file.id}>
          {/* something */}
        </div>
      );
    })}
    

    希望能帮上忙