组件卸载时中止获取

时间:2017-07-19 21:39:17

标签: react-native

如何在组件消失(卸载)时取消提取操作

示例:用户打开此屏幕并在获取完成之前返回

这就是我所做的

export default class LecturesScreen extends React.Component
{
      constructor(props){
        super(props);
        this.state = {lectures : [] , loadingNow : true}
    }

    componentDidMount(){
        this.loadLectures();
    }

    loadLectures = () =>{
        fetch(Link.api.lecture.newest , {method : 'POST'})
            .then((response) =>
            {
                this.setState({lectures : response , loadingNow: false});
            })
            .catch((error)=>
            {
                console.log(error);
            });
    };

    render(){
        return (
            <View>

                <List dataArray={this.state.lectures}
                      renderRow={(item) => <LectureListItem title={item.Title}/>}
                />

            </View>
        );
    }
}

1 个答案:

答案 0 :(得分:2)

编辑:

我认为目前无法取消/取消获取请求。 您可以在此处进行讨论:

https://github.com/whatwg/fetch/issues/447

调用componentDidUnmount上的函数,如下所述。

componentWillUnmount(){
    this.unLoadLectures();
}

unLoadLectures = () =>{
   this.state = {lectures : [] , loadingNow : true}
};