Javascript 打印出';[对象对象]';
我有我的元素:Javascript 打印出';[对象对象]';,javascript,reactjs,Javascript,Reactjs,我有我的元素: dangerouslySetInnerHTML: { __html: this.props.html.map(React.renderToStaticMarkup).join('') } this.props.html是一个React元素数组(由该方法构建): makeOutput(模型){ 返回; } 当我在断点中运行上面的代码时,我确实得到: > this.props.html.map(React.renderToStaticMarkup).join('') >
dangerouslySetInnerHTML: { __html: this.props.html.map(React.renderToStaticMarkup).join('') }
this.props.html
是一个React元素数组(由该方法构建):
makeOutput(模型){
返回;
}
当我在断点中运行上面的代码时,我确实得到:
> this.props.html.map(React.renderToStaticMarkup).join('')
> "<span>b</span>"
>this.props.html.map(React.renderToStaticMarkup.join(“”)
>“b”
但是,当元素输出到DOM时,只显示[object]
。有什么原因吗?表明该技术工作正常:
function makeOutput(text) {
return <Wrapper text={text} />;
}
var Wrapper = React.createClass({
render() {
return <div>Wrapping: {this.props.text}</div>
}
});
var App = React.createClass({
render() {
var items = [
makeOutput("one"),
makeOutput("two"),
makeOutput("three")
];
return (
<div dangerouslySetInnerHTML={{__html: items.map(React.renderToStaticMarkup).join("") }} />
);
}
});
React.render(<App />, document.getElementById("container"));
函数makeOutput(文本){
返回;
}
var Wrapper=React.createClass({
render(){
返回包装:{this.props.text}
}
});
var App=React.createClass({
render(){
可变项目=[
生成输出(“一”),
makeOutput(“两个”),
makeOutput(“三”)
];
返回(
);
}
});
React.render(,document.getElementById(“容器”);
问题一定出在一些您尚未透露的代码中。您能提供一个完整的示例吗?我遇到了同样的问题。对我来说,这是因为服务器端渲染器需要重新启动才能正常工作。一旦我这样做了,HTML就会在浏览器中按预期呈现。双大括号有区别吗<代码>{{{uuuuhtml…}}。在JSX中,外部卷曲是作为一个道具用于JS表达式;因为该值是一个对象文字,所以内部存在。他们不赞成在
React
对象上使用此方法,并将其添加到ReactDOMServer
对象中。需要包括react dom server.js
或要求react dom/server
。
function makeOutput(text) {
return <Wrapper text={text} />;
}
var Wrapper = React.createClass({
render() {
return <div>Wrapping: {this.props.text}</div>
}
});
var App = React.createClass({
render() {
var items = [
makeOutput("one"),
makeOutput("two"),
makeOutput("three")
];
return (
<div dangerouslySetInnerHTML={{__html: items.map(React.renderToStaticMarkup).join("") }} />
);
}
});
React.render(<App />, document.getElementById("container"));