Рендеринг при отображении в нормализованное состояние редукции - PullRequest
0 голосов
/ 16 января 2019

Я использую шаблон нормализованного состояния, и мне нужно отобразить все объекты в части дерева состояний, поэтому я пытаюсь отобразить их и выполнить рендеринг. Но индексы продолжают отображаться вместе с объектом. Почему это происходит?:

Мое состояние определяется действием:

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>
...