Javascript 如何将JSX存储在变量中?
这将正确输出,与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
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
,或者从函数返回它()=>
,不知道这是怎么可能的,跨度的位置不会保持不变,有时会出现不止一次的情况。我认为您遇到了一个问题,您最终给出了解决方案,并试图使其发挥作用,而不是将原始问题发布为