在React中尝试调用函数以延迟使用setTimeout

时间:2018-09-26 13:30:56

标签: react-native

在ReactNative中,我创建了一个加载器,并且该加载器通过函数显示和隐藏。但是,当我尝试在setTimeout中调用此函数时,此函数不起作用,它会向我返回如下错误-> this.showLoader不是函数。未定义。 但是当我尝试没有setTimeout时,它工作正常。

export default class ThirdScreen extends Component<Props> {

  constructor(props) {
        super(props)

    this.state = 
    {
       isLoading: false
    }
    this.showLoader = this.showLoader.bind(this);
  }

  componentDidMount() {

    setTimeout(function(){
      this.showLoader()
    }, 1000);
     //this.showLoader()
    }

    showLoader () {
      this.setState({ isLoading: true });
    }

    hideLoader = () => {
      this.setState({ isLoading: false });
    }
}

2 个答案:

答案 0 :(得分:0)

类似于 showLoader()函数在 componentDidMount()中声明,因此无法通过 this 指针进行访问。

答案 1 :(得分:0)

希望这能解决您的问题

setTimeout(()=> this.showLoader(), 1000)