componentDidUpdate не вызывается - PullRequest
0 голосов
/ 09 мая 2020

У меня есть собственное приложение для реагирования, и я вызываю componentDidUpdate в приложении. js, но оно не срабатывает. Интересно, это потому, что я звоню из приложения js? Вот приложение. js файлы:

class App extends Component {

    componentDidUpdate = () => {
        if (this.props.text && this.props.text.toString().trim()) {
            Alert.alert(this.props.title || 'Mensagem', this.props.text.toString());
            this.props.clearMessage();
        }
    }

    render() {
        return (
            <NavigationContainer>
                <Navigator />
            </NavigationContainer>
        )
    }
}

const mapStateToProps = ({ message }) => {
    return {
        title: message.title,
        text: message.text
    }
}

const mapDispatchToProps = dispatch => {
    return {
        clearMessage: () => dispatch(setMessage({
            title: '',
            text: ''
        }))
    }
}

const connectDispatch = connect(mapStateToProps, mapDispatchToProps);
const connectApp = connectDispatch(App);

export default connectApp;

И вот где я его вызываю. Внутри действия отправки в сообщениях.

    .then(res => {
        dispatch(fetchPosts());
        dispatch(postCreated());
        dispatch(setMessage({
            title: 'Sucesso',
            text: 'Nova Postagem!'
        }));
    });

Все остальные отправления запускаются. Дело не в том, что если это предотвращает срабатывание предупреждения, потому что я уже поместил предупреждение вне if.

Ответы [ 2 ]

0 голосов
/ 10 мая 2020

Всем спасибо!

Я смог это исправить.

Вместо импорта из '.ActionTypes' я импортировал из 'Сообщение'

импорт {SET_MESSAGE} из ' ../actions/ActionTypes';

Я новичок в Redux, и это застало меня врасплох!

0 голосов
/ 09 мая 2020

Измените это

componentDidUpdate = () => { ... }

на это:

componentDidUpdate(prevProps, prevState, snapshot) { ... }

Имейте в виду, что componentDidUpdate не срабатывает при первом рендеринге

...