React Native: повторная визуализация компонента во временном интервале - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть компонент внутри моей функции render(), который возвращает список элементов, которые должны отображаться в представлении.Этот компонент (родительский) ссылается на дочерний компонент, который имеет http запрос к API.Этот запрос отвечает за возврат списка элементов с его данными.В основном данные, возвращаемые из базы данных, являются другими пользователями приложения и его позициями.Все работает просто отлично.

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

Я пытался использовать метод с setInterval, чтобы продолжать делать запросы к базе данных и обновлять (повторно визуализировать) компонент внутри функции render(), когда обнаруживаются некоторые изменения в БД, но у меня есть некоторыепроблемы.Вот что у меня есть:

render(){

    return(

        <View>
            <Component_to_re_render/>
        </View>

    );

}

Интересно, есть ли способ сделать что-то вроде ...

render(){

    return(

        <View>
            {this.re_render_component()}
        </View>

    );

}

re_render_component(){
    "This function would make the component be re-rendered  with the new 
     data received from the API in a period of time."
}

Может кто-нибудь помочь мне сделать эту работу?Это не должно быть сделано точно так, как я предлагаю.

Спасибо!

1 Ответ

0 голосов
/ 02 декабря 2018

Если вы сохраните свой ответ в состоянии компонента и отобразите состояние в компоненте, он автоматически будет повторно обработан при изменении данных.Не нужно иметь интервал (кроме случаев, когда вам нужно, чтобы запрос был в интервале).

Примерно так:

class MyComponent extends React.Component {

    state = {text: ''}

    componentDidMount(){
        someKindOfHttpRequest().then(response => this.setState({text: response}))
    }

    render() {
      return <Text>{this.state.text}</Text>
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...