我只是想知道是否有使用 ReactJS 动态渲染元素的最佳实践方法
考虑以下场景:
(1) Parameter Factory 组件:
参数化工厂组件,其工作是根据字符串参数渲染组件,有没有办法无需恢复到 React.createElement 就可以这样做?
<pre><code>// The following doesn't work
class Quiz extends React.Component{
constructor (props){
super (props);
this.state = {
questionText: '',
correctAnswer: [],
assetType: ['DragNDrop','MultipleChoice','MatchPairs']
}
}
render(){
const { questionText, correctAnswer } = this.state;
return <{this.state.assetType[this.props.typeIndex] />;
}
}
</code></pre>
(2)动态 HTML 标签:
根据整数输入呈现不同的 HTML 标头标签。为此,我最初尝试使用模板字符串,但不得不求助于条件渲染。
<pre><code>// No joy with Template strings
render (){
<{`h${this.state.headerSize}`}>
{this.state.headerText}
</ {`h${this.state.headerSize}`}>
}
我喜欢使用 JSX,并且能够使用动态元素名称以保持一致性会很好。
我也知道:
assetType: ['DragNDrop','MultipleChoice','MatchPairs']
可以存储为:
assetType: [<DragNDrop />,<MultipleChoice />, <MatchPairs />]
这将工作。
我对 JSX 元素数组的一个问题是如何将这些 JSX 元素存储在数据库中?我猜我必须将它们存储为Strings
但是当从数据库拉回时如何使用它们?
任何人都可以建议任何工作和最佳实践方法来解决这些问题吗?