React / Redux: mapStateToProps () вызывается много раз - PullRequest
0 голосов
/ 13 ноября 2018

Я пишу простое приложение с использованием React / Redux. Я заметил, что функция mapStateToProps () вызывается много раз. Вот код:

class Employees extends React.Component {
    componentDidMount() {
        this.props.fetchEmployees();
    }
}

let mapStateToProps = function mapStateToProps(state) {
    console.log("foo");
    return {...};
};

let mapDispatch = (dispatch) => {
    return {
        fetchEmployees: bindActionCreators(fetchEmployees, dispatch)
    };
};

export default connect(mapStateToProps, mapDispatch)(Employees);

И что я получаю в консоли:

enter image description here

Это нормально или я что-то не так делаю?

1 Ответ

0 голосов
/ 13 ноября 2018

Каждый раз, когда происходит изменение состояния приращения или когда родительский компонент вашего контейнера повторно отображает, вызывается mapStateToProps.Это, однако, не приведет к повторному вызову рендеринга вашего компонента при условии, что данные, возвращаемые mapStateToProps, и реквизиты, которые он получает, не изменились.

Если у вас есть вычисления, которые вы делаете в mapStateToProps, которые возвращаютзначение, убедитесь, что вы используете памятную функцию для выполнения этого вычисления или reselect для записи memoized selectors, чтобы одно и то же значение возвращалось для одного и того же вычисления, даже если mapStateToProps вызывается несколько раз

...