Я использую шаблон нормализованного состояния, и мне нужно отобразить все объекты в части дерева состояний, поэтому я пытаюсь отобразить их и выполнить рендеринг. Но индексы продолжают отображаться вместе с объектом. Почему это происходит?:
Мое состояние определяется действием:
export function createNew(personId) {
const personEntry = fromJS({
[personId] : {
id: personId,
somestring: "foo",
}
});
return {
type: NEW_THING,
personEntry,
};
}
и редуктор:
const initialState = fromJS({
peopleList: {},
});
...
case NEW_THING:
return state
.update('peopleList', map => map.merge(action.personEntry));
и компонент для отображения, если передан peopleList
function PeopleThumbnails(props) {
const list = props.list;
const listItems = list.map(item =>
<li>{item.get('somestring')}</li>
);
return (
<ul>
{listItems}
</ul>
)
};
export default PeopleThumbnails;
, а затем использовать его в index.js
:
<PeopleThumbnails list={collection}>
...
...
const mapStateToProps = createStructuredSelector({
collection: myReselectSelector()
})
теперь пользователь вызывает действия createNew('one')
, createNew('two')
, и все работает правильно, кроме мошеннического рендеринга index / personId.
<ul>
"one"
<li>foo</li>
"two"
<li>foo</li>
</ul>