Node.js 如何使用next.js将动态html元素注入页面?
如何使用next.js将动态注入html元素添加到页面?这些元素的类型未知,如输入、复选框、img等,。。。。此元素由返回json类型的api指定,如下所示:Node.js 如何使用next.js将动态html元素注入页面?,node.js,reactjs,next.js,Node.js,Reactjs,Next.js,如何使用next.js将动态注入html元素添加到页面?这些元素的类型未知,如输入、复选框、img等,。。。。此元素由返回json类型的api指定,如下所示: [{ "id":"rooms", "title":"Rooms", "order":1, "type":"string", "widget":"select", "data":[{ "Id":18, "ParentId":null,
[{
"id":"rooms",
"title":"Rooms",
"order":1,
"type":"string",
"widget":"select",
"data":[{
"Id":18,
"ParentId":null,
"Title":"One",
"Level":null,
"Childrens":[]
},
{"Id":19,
"ParentId":null,
"Title":"Two",
"Level":null,
"Childrens":[]
},
{"Id":20,
"ParentId":null,
"Title":"Three",
"Level":null,
"Childrens":[]
}]
},
{
"id":"exchange",
"title":"Exchange",
"order":0,
"type":"boolean",
"widget":"checkbox",
"data":[]
}]
我的尝试是:
Index.getInitialProps=异步函数{req,query}{
const res=等待获取“url api”
var elements=await res.json
var测试==>
{……将json转换为html元素……}
返回{
测验
}
}
函数Indexprops{
回来
{props.test}
}
结果为空,表示结果无效
问题是,我做对了吗?有更好的方法吗?在getInitialprops中将道具从服务器传输到客户端的过程中,JSON被序列化,因此函数并没有真正序列化。看 最好的方法是将测试数据转换为HTML数据字符串,并使用危险的HTML注入它。例如:
class TestComponent extends React.Component {
static async getInitialProps() {
const text = '<div class="homepsage">This is the homepage data</div>';
return { text };
}
render() {
return (
<div>
<div className="text-container" dangerouslySetInnerHTML={{ __html: this.props.text }} />
<h1>Hello world</div>
</div>
);
}
}
这样做的关键是,返回的字符串必须是有效的HTML而不是JSX。所以请注意,我使用了class而不是className
您可以在这里了解更多信息:在getInitialprops中将道具从服务器传输到客户端的过程中,JSON被序列化,因此函数并不是真正序列化的。看 最好的方法是将测试数据转换为HTML数据字符串,并使用危险的HTML注入它。例如:
class TestComponent extends React.Component {
static async getInitialProps() {
const text = '<div class="homepsage">This is the homepage data</div>';
return { text };
}
render() {
return (
<div>
<div className="text-container" dangerouslySetInnerHTML={{ __html: this.props.text }} />
<h1>Hello world</div>
</div>
);
}
}
这样做的关键是,返回的字符串必须是有效的HTML而不是JSX。所以请注意,我使用了class而不是className
您可以在此处阅读更多信息:谢谢,它非常有用。但是,这是一种常用的注射方法吗?我不会说这是标准的。真的没有一个转到标准。如果您认为json数据非常有用,还可以返回json数据并将其解析为真正的JSX。但是,这是一种常用的注射方法吗?我不会说这是标准的。真的没有一个转到标准。如果需要,还可以返回json数据并将其解析为真正的JSX