Проблема с отрисовкой react-native componentwillrecieveprops

В моем проекте RN я хочу этого добиться.

// componentWillReceiveProps componentWillReceiveProps = async (nextProps) => { пусть {searchText, peopleTab} = this.props;

    let params = {};

    if (peopleTab !== nextProps.peopleTab) {
        params.peopleTab = nextProps.peopleTab;
    }

    // here i want to pass nextProps.searchText without a condition with the params like this.
    // params.searchText = nextProps.searchText

    if (Object.keys(params).length > 0) {
        await this.props.fetchUnfollowedPeople(params);
    }
}

Я хочу отправить nextProps.searchText с объектом params, если есть новое значение. В противном случае я хочу отправить this.props.searchText с объектом params.

Приведенный выше код, если я раскомментирую

 // params.searchText = nextProps.searchText

это дает бесконечный цикл. Как я могу этого добиться?

0
0
30
1

Ответы 1

Установка let { searchText, peopleTab } = this.props; в componentWillReceiveProps приводит к вставке нового значения

componentWillMount() {
   this.searchText = this.props.searchText ;
   this.peopleTab = this.props.peopleTab ;
}

componentWillReceiveProps = async (nextProps) => {

    const params = [];

    if (this.peopleTab !== nextProps.peopleTab) {
         params['peopleTab'] = nextProps.peopleTab ;
    }

    if (Object.keys(params).length > 0) {
        await this.props.fetchUnfollowedPeople(params);
    }
}

Другие вопросы по теме