所以我有一個React.js組件,並且我想通過導入的對象循環來添加HTML選項。以下是我試過了,這既是醜陋和不工作:如何使用React.js在JSX中循環對象
import React from 'react';
import AccountTypes from '../data/AccountType';
const AccountTypeSelect = (props) => {
return (
<select id={props.id} className = {props.classString} style={props.styleObject}>
<option value="nothingSelected" defaultValue>--Select--</option>
{
$.each(AccountTypes, function(index) {
<option val={this.id}>this.name</option>
})
}
</select>
);
};
export default AccountTypeSelect;
我在控制檯收到此錯誤從上面的代碼:
invariant.js 4599:38 - 未捕獲不變衝突?對象作爲React子項無效(找到:包含鍵{id,name,enabled,additionalInfo}的對象)。如果您打算渲染一組兒童,請改用數組,或者使用React附加組件中的createFragment(object)來包裝對象。檢查AccountTypeSelect
的渲染方法。
我是否真的需要將每個對象轉換爲數組或使用createFragment包裝來使用它?這種情況的最佳做法是什麼?
什麼是關鍵屬性 - 爲什麼我需要使用?看起來很奇怪,我需要添加一個看似任意的屬性,當我想要做的就是放置一個簡單的選項標籤。 – Tylerlee12
關鍵屬性在「調整」下描述:https://facebook.github.io/react/docs/multiple-components.html。但基本上是要確保當你的子元素是動態生成的時候能夠正確地更新DOM(我知道一個弱解釋,但我不想在評論中重複反應文檔)。在這方面,我使用循環變量的形式很差,所以我已經更新了答案。抱歉! – Kevin