【问题标题】:React. Creating a function that returns html做出反应。创建一个返回 html 的函数
【发布时间】:2018-04-07 22:16:36
【问题描述】:

我最近开始使用 react,但遇到了一些问题。

目前我有以下代码

<div className="col-md-4"><h4>ML</h4>
{
    game.lines.map(function (lineGroup) {
        return (
            <div className="row">
                <div className="col-md-1">
                    {lineGroup.Pay}
                </div>
                <div className="col-md-3">
                    <strong>{getLineInfo(lineGroup.HomeInfo)}</strong>
                </div>
                <div className="col-md-3">
                    <strong>{getLineInfo(lineGroup.Score)}</strong>
                </div>
                <div className="col-md-3">
                    <strong>{getLineInfo(lineGroup.AwayInfo)}</strong>
                </div>
            </div>
        )
    })
}

这位于我的 render() 函数中。

但是,我将这段完全相同的代码复制/粘贴了 5 次以上,只进行了微小的更改。 我希望将其提取到一个函数中,但我不知道该怎么做。

我应该把函数放在哪里? - 在 render() 方法里面?

我应该从中返回什么? - 在 {} 占位符中包含 html 和变量的字符串?

我只是在 html 中调用它吗?

【问题讨论】:

  • 是不是一模一样一样,只是重复了5次?
  • 不,秒标签的内容改变了。

标签: javascript html function reactjs return


【解决方案1】:

像这样创建函数:

function gameLines(game) {
    return game.lines.map(function (lineGroup) {
        return (
            <div className="row">
                <div className="col-md-1">
                    {lineGroup.Pay}
                </div>
                <div className="col-md-3">
                    <strong>{this.getLineInfo(lineGroup.HomeInfo)}</strong>
                </div>
                <div className="col-md-3">
                    <strong>{this.getLineInfo(lineGroup.Score)}</strong>
                </div>
                <div className="col-md-3">
                    <strong>{this.getLineInfo(lineGroup.AwayInfo)}</strong>
                </div>
            </div>
        )
    })
}

这样使用:

<div className="col-md-4"><h4>ML</h4>
    { this.gameLines(game) }
</div>

别忘了绑定函数

constructor() {
    ...
    this.gameLines = this.gameLines.bind(this);
    this.getLineInfo = this.getLineInfo.bind(this);
}

【讨论】:

  • 如何从 JavaScript 函数返回 HTML 代码?这个问题在 2017 年的其他地方被问过,目前还没有答案。有人明白吗?
  • 这显然是一种名为 JSX 的新语言:reactjs.org/docs/introducing-jsx.html。我想它只适用于反应。
猜你喜欢
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 2011-02-19
  • 1970-01-01
  • 2017-09-09
  • 2014-12-04
  • 2020-06-19
相关资源
最近更新 更多