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

JSX未返回预期的HTML

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

    我的react组件的返回语句中包含以下代码:

    return (
            <div>
                {
                    props.photos.length > 0 &&
                        <div>
                        {props.photos.map((photo) => 
                            <div>
                                <a target="_blank"
                                    href="/api/game_theory/game-files/{this.props.profileId}/files/{photo.id}/{photo.downloadName}">
                                    {photo.title}
                                </a>
                            </div>
                        )}
                        </div>
                }
            </div>
        );
    

    它无错误地呈现,但是锚标记在HTML中如下所示:

    <a target="_blank" href="/api/game_theory/game-files/{this.props.profileId}/files/{photo.id}/{photo.downloadName}">
                                    ActualPhotoName.jpg
                                </a>
    

    所以photo.title是正确的,但是photo.id、photo.downloadname和this.props.profileid不是。

    我肯定我做错了什么事,我很感谢你的帮助。:)

    2 回复  |  直到 6 年前
        1
  •  1
  •   Vincent Nguyen    6 年前

    把整个包裹起来 href 里面 { } 从支柱上取下:

    href={"/api/game_theory/game-files/" + this.props.profileId + "/files/" + photo.id + "/photo.downloadName"}

        2
  •  2
  •   jmargolisvt    6 年前

    在JSX中,不能用括号“双重解释”JavaScript。假设您的道具对您可用,尝试使用ES6字符串插值:

    href=`/api/game_theory/game-files/${this.props.profileId}/files/${photo.id}/${photo.downloadName}`>