Функция response-redux connect () mapStateToProps обновляется, но компонент не перерисовывается - PullRequest
0 голосов
/ 17 февраля 2020

Я использую функции React, Redux и React-Redux Provider

const mapStateToProps = (store: any) => {
    console.log("mapStateToProps", store.textTwo);
    return store.textTwo;
};

, если я использую выше mapStateToProps функцию для connect метода react-redux и обновляю состояние, которое она будет поддерживать. регистрировать изменения в функции mapStateToProps, но не в компоненте рендеринга, даже если он не componentWillReceiveProps hook.

, но когда я добавляю spread operator, т. е. изменяю данные возврата mapStateToProps, он будет повторно отображать весь компонент.

const mapStateToProps = (store: any) => {
    console.log("mapStateToProps", store.textTwo);
    return { ...store.textTwo }; <-- this will re render complete component
};

как передать состояние реквизитам компонента без повторного рендеринга всего компонента.

--- Обновить ---

пример данных состояния

store = {
    textTwo: {
        headerText: 'Sample',
        list: [
            {
                id: 1,
                name: 'test 1'
            }
        ]
    },
    text: {}
}

headerText является дочерним компонентом для отображения заголовка заголовка. list - это массив данных, который я итерирую и перечисляет имя.

Пробное решение (предоставленное @Siva Kondapi Venkata), и оно работает, но если я добавлю новый элемент в список, Компонент заголовка также перерисовывается.

const mapStateToProps = (store: any) => ({
  textTwo: store.textTwo
});

1 Ответ

0 голосов
/ 17 февраля 2020

Тебе нужно так делать. Верните props интересующий вас.

const mapStateToProps = (store: any) => ({
  textTwo: store.textTwo
});

const mapDispatchToProps = {

};

export default connect(mapStateToProps, mapDispatchToProps)(Component);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...