在 React 中渲染格式化(未缩小)的 HTML(SSR 和 Next.js)

IT技术 reactjs react-redux server-side-rendering html-rendering nextjs
2021-05-20 16:11:22

如何在 React(SSR with Next.js)中呈现格式化(未缩小)的 HTML?

预期输出:

<div>
   <div>
       <input type="text" />
   </div>
</div>

现在收到:

<div><div><input type="text"/></div></div>

泰!

2个回答

您需要在实际返回浏览器之前格式化输出。所以对于nextjs,首先切换到自定义服务器nexjs自定义服务器和路由,并演练这个漂亮打印html的答案。使用 nextjs 或 react SSR,这可能无法作为内置的可配置选项。

您可能正在寻找危险的setinnerhtml它允许您传入想要呈现为原始 HTML 的字符串。

function createMarkup() {
  return {__html: '<div><div><input type="text"/></div></div>'};
}

function MyComponent() {
  return <div dangerouslySetInnerHTML={createMarkup()} />;
}