Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将JSX存储在变量中?_Javascript_Reactjs_Jsx - Fatal编程技术网

Javascript 如何将JSX存储在变量中?

Javascript 如何将JSX存储在变量中?,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,这将正确输出,与JSX一样工作,并按预期高亮显示字段 var result = "the text"; renderResults[2].props.children.props.listing.title = <span className="highlight"> {result} </span>; var result=“文本”; renderResults[2].props.children.props.listing.t

这将正确输出,与JSX一样工作,并按预期高亮显示字段

var result = "the text";
renderResults[2].props.children.props.listing.title = <span className="highlight"> {result} </span>;
var result=“文本”;
renderResults[2].props.children.props.listing.title={result};
然而,这一次却没有。它显示为带有html标记的字符串:

var result=“文本”;
var finalResult={result};
renderResults[2].props.children.props.listing.title=finalResult;

如何让第二个作为JSX而不是字符串传递?

您的class属性缺少结束引号

var finalResult = <span className="highlight"> {result} </span>;
var finalResult={result};

您没有关闭className,也许这就是它不起作用的原因


className=“highlight”

您的代码上有一个小的打字错误,您在
className=“highlight>
之后缺少一个

一个有效的例子:

const Demo=()=>{
const result=“文本”;
const finalResult={result};
返回最终结果;
}
ReactDOM.render(,document.getElementById('demo'))

如果我弄错了,请纠正我的错误,但如文档所述

默认情况下,React DOM在呈现JSX中嵌入的任何值之前都会转义这些值。因此,它确保您永远不能注入任何未在应用程序中显式编写的内容。在渲染之前,所有内容都转换为字符串。这有助于防止XSS(跨站点脚本)攻击


因此,它假设您的变量是用户输入或恶意的东西,并在使用其内容之前将其转义,而在第二个示例中,您将显式地将JSX分配给变量以使其工作。

我们需要查看更多代码,请显示完整的代码,我不知道为什么一个有效,另一个无效,但是您在
className
属性中缺少了一个右引号。这个赋值看起来有点混乱,不是吗?你能和我们分享更多的代码吗,比如你的完整组件,这样我们就可以提供帮助了?这两个例子中都没有,但是…为什么它在一个例子中有效而在另一个例子中无效?我认为JSX解析器可以回答这个问题。请解释OP问题中的错误,您在示例中所做的是什么使它工作的。那么,这是如何修复的,以便它将其视为JSX?内联为
x=JSX
,或者从函数返回它
()=>
,不知道这是怎么可能的,跨度的位置不会保持不变,有时会出现不止一次的情况。我认为您遇到了一个问题,您最终给出了解决方案,并试图使其发挥作用,而不是将原始问题发布为