Реагировать на редукцию не обновляя компонент при добавлении в массив - PullRequest
0 голосов
/ 03 октября 2018

Таким образом, независимо от того, что я делаю, я не могу заставить компонент обновляться, когда я добавляю элемент в массив в хранилище с избыточностью.

Что я использую в своем редукторе, чтобы добавить в состояние избыточности:

case ADD_NOTE_META:
  return [
    ...state,
    action.note,
  ];

Соединитель:

import { connect } from 'react-redux';
import NoteSection from './NoteSection.component';

const mapStateToProps = state => ({
   notes: state.NotesMeta,
});

const mapDispatchToProps = () => ({});

export default connect(
   mapStateToProps,
   mapDispatchToProps,
)(NoteSection);

Компонент:

import React from 'react';

import PropTypes from 'prop-types';
import NoteSelectorContainer from './noteselector/NoteSelector.connector';
import DeleteConfirmationMessage from './deletenoteconfirmationmessage/DeleteConfirmationMessage.connector';

function NoteSection(props) {
  const { notes } = props;

  return (
    <div id="divSelectNoteContainer">
      {notes.map(item => (
        <NoteSelectorContainer
          note={item}
          key={item.id}
        />
      ))}
      <DeleteConfirmationMessage />
    </div>
  );
}

NoteSection.defaultProps = {
  notes: [],
};

NoteSection.propTypes = {
  notes: PropTypes.array,
};

export default NoteSection;

Состояние в редуксе структурировано как:

{
NotesMeta: [
    {
      id: '5b6cd6c49a46d',
      title: 'folder note',
      tags: [
        'test'
      ],
      parentid: '5b6cd6c49a48d'
    },
    {
      id: '5b6cd6c496ad2',
      title: 'test note',
      tags: [],
      parentid: null
    },
]
}

Вывод файла console.log (заметки) перед выполнением добавления новой заметки:

0: {id: "5b6cd6c49a46d", title: "folder note", tags: Array(1), parentid: "5b6cd6c49a48d"}
1: {id: "5b6cd6c496ad2", title: "test note", tags: Array(0), parentid: null}

После:

0: {id: "5b6cd6c49a46d", title: "folder note", tags: Array(1), parentid: "5b6cd6c49a48d"}
1: {id: "5b6cd6c496ad2", title: "test note", tags: Array(0), parentid: null}
2: {id: "5bb48aaae94c1", title: "New Note Title", tags: Array(0)}

Я вижу, что новая заметка добавляется как в хранилище избыточных файлов, так и в хранилище.Notesection поддерживает, однако новый NoteSelectorContainer никогда не создается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...