React Native:在时间间隔内重新渲染组件

时间:2018-12-02 14:41:54

标签: android react-native httprequest

我的render()函数中有一个组件,该组件返回要在视图上显示的元素列表。该组件(父组件)引用对API发出http请求的子组件。该请求负责返回带有其数据的元素列表。从数据库返回的数据基本上是该应用程序及其位置的其他用户。一切正常。

问题在于,当数据库中的数据发生更改时,我想能够重新呈现该组件,因此,只要更改,一个用户就可以知道其他用户的位置。

我坚决要使用一种带有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 :(得分:1)

如果将响应保存为组件状态并在组件中呈现状态,则在发生数据更改时它将自动重新呈现。不需要间隔(除非您需要在间隔中请求)。

类似的东西:

class MyComponent extends React.Component {

    state = {text: ''}

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

    render() {
      return <Text>{this.state.text}</Text>
    }
}