React元件中如何根據條件動態新增屬性?
P粉665427988
2023-08-20 14:54:00
<p>是否有方法,只有在滿足特定條件時才在React元件中加入屬性? </p>
<p>我需要在渲染後的Ajax呼叫中根據條件向表單元素添加required和readOnly屬性,但我不知道如何解決這個問題,因為<code>readOnly="false"</code>與完全省略屬性不同。 </p>
<p>下面的範例應該說明我想要的,但它不起作用。 </p>
<blockquote>
<p>(解析錯誤:意外的識別碼)</p>
</blockquote>
<pre class="brush:js;toolbar:false;">function MyInput({isRequired}) {
return <input classname="foo" {isRequired ? "required" : ""} />
}
</pre>
<p><br /></p>
juandemarco的答案通常是正確的,但這裡還有另一個選擇。
按照您的喜好建立一個物件:
使用spread進行渲染,也可以選擇傳遞其他props。
顯然,對於某些屬性,如果傳遞給React的值不是真值,React會智慧地省略該屬性。例如:
將會得到:
更新:如果有人對此如何發生以及為什麼發生感到好奇,你可以在ReactDOM的源代碼中找到詳細信息,具體位於DOMProperty.js文件的第30行和167行。