连接字符串和HTML Inside JSX Expression

时间:2018-06-14 19:53:55

标签: javascript string reactjs concatenation

我正在尝试在JSX表达式中连接字符串和HTML,但我似乎无法正确地执行此操作。我的渲染函数中的代码如下所示:

<span>
   {'preferred string' || `Other string ${<a target="_blank" href={someVariable}>text inside link</a>}`}
</span>

我想要渲染的是:“链接中的其他字符串文本”

它实际呈现的是“其他字符串[object Object]”

我尝试了一些不同的策略,但没有运气。非常感谢任何建议。

2 个答案:

答案 0 :(得分:2)

你想要的东西是:

<span>
  {'preferred string' || <p>Other string <a target="_blank" href={variable}>text inside</a></p>}
</span>

关键是添加了段落标签。在你的代码中,React正在努力同时解释多种不同的语言。

请注意,此解决方案与您提供的代码类似,只会显示第二个结果,如果&#39;首选字符串&#39;是空的或null,并且它是硬编码的,有一些值,所以or语句的后半部分永远不会显示。

编辑:如果您的字符串实际上是变量,那么您需要再次退出其他字符串&#39;像这样:

<span>
  { stringVariable || <p>{otherStringVariable}<a target="_blank" href={variable}>{insideTextVariable}</a></p> }
</span>

答案 1 :(得分:0)

如果你只想用标签连接字符串,你可以试试这个简单的方法:

double asc(int n,char tip,...)
{
    va_list va;
    va_start(va,tip);
    va_list var;
    va_start(va,tip);
    while(--n)
    {
        if(tip=='d')
        {
            int va1=va_arg(va,int);
            if( va>va1)
                return 1;
            else
                return 0;
        } 
        else
            if(tip=='f')
            {
                double va2=va_arg(va,double);
                if(va>va2)
                return 1;
            else
                return 0;
            }
    }
    return 0;

}
int main(int argc, char const *argv[])
{
    asc(3,'d',-1,7,9);
    return 0;
}

或者,像这样:

<>
    preferred string || Other string <a target="_blank" href={someVariable}>text inside link</a>
</>