Reactコンポーネントを記述しようとしています。 htmlヘッダータグ(h1、h2、h3、etc ...)の場合、ヘッダーの優先度は、小道具で定義した優先度に基づいて動的に変化します。jsxとReactの動的タグ名
ここで私は何をしようとします。
<h{this.props.priority}>Hello</h{this.props.priority}>
予想される出力:
<h1>Hello</h1>
これが機能していません。これを行う方法はありますか?
Reactコンポーネントを記述しようとしています。 htmlヘッダータグ(h1、h2、h3、etc ...)の場合、ヘッダーの優先度は、小道具で定義した優先度に基づいて動的に変化します。jsxとReactの動的タグ名
ここで私は何をしようとします。
<h{this.props.priority}>Hello</h{this.props.priority}>
予想される出力:
<h1>Hello</h1>
これが機能していません。これを行う方法はありますか?
(最初の文字が大文字で)その場で、単に変数にそれを置くことを行うには方法:あなたが動的な名前を使用したい場合は
const CustomTag = `h${this.props.priority}`;
<CustomTag>Hello</CustomTag >
コメントをいただき、ありがとうございます。これは涼しく働いています –
'React.createClass'よりはるかに簡単です、私はこの方法が好きです。ありがとう。 – Vadorequest
@zerkms CustomTagに属性を追加する方法はありますか?ありがとう – Sabrina
完全性のために、あなたも直接呼び出すことができます代わりに用いJSXのReact.createElement
:
React.createElement(`h${this.props.priority}`, null, 'Hello')
これは新しい変数またはコンポーネントを作成する必要がなくなり。 docsから
React.createElement(
`h${this.props.priority}`,
{
foo: 'bar',
},
'Hello'
)
:小道具で
作成し、指定されたタイプの新しいリアクト要素を返します。 type引数には、タグ名の文字列(
'div'
または'span'
など)またはReactコンポーネントタイプ(クラスまたは関数)のいずれかを指定できます。JSXで書かれたコードは、
React.createElement()
に変換されます。通常、JSXを使用している場合は直接React.createElement()
を呼び出しません。詳細は、React Without JSXを参照してください。
可能性のある重複した[リアクト/ JSXダイナミックコンポーネント名](http://stackoverflow.com/questions/28842459/react-jsx-dynamic-component-names) –