似乎未在本机iOS上调用this.setState

时间:2018-10-26 12:24:06

标签: javascript react-native

我当前在我的本机应用程序中使用setState渲染屏幕。

下面是代码,由于某种原因,该代码可以正常运行所有内容,但 设置状态。

showCard(event) {

  const { loadCard } = this.state;
  this.setState({ loadCard: true });

  console.log(loadCard)
  // get value of marker ID
  const markerID = parseInt(event.nativeEvent.id);
  console.log(markerID)
  if (markerID <= this.state.markers.length && markerID != null) {

    setTimeout(() => {
      //USE THIS FORMAT
      this.scrollView.getNode().scrollTo({ 
         x: markerID * (CARD_WIDTH), 
         animated: true 
      });

    }, 0.01);

    console.log(this.scrollView)

  }

}

在此问题上的建议将不胜感激,因为它对我来说适用于android

3 个答案:

答案 0 :(得分:0)

它确实可以工作,但是设置状态是异步的,所以您不能只记录结果,请注意以下更改:

this.setState({ loadCard: true }, () => console.log(this.state.loadCard));

第二个参数是设置状态后触发的回调,但是实际上您很少需要它。

setTimeout延迟也是一个整数,它表示毫秒而不是浮点数。如果您希望尽快使用,请使用0

答案 1 :(得分:0)

您需要在稳定状态的同时将函数绑定到构造函数中

$ join file1 file2 | awk '$2!=$3{print $1,$3}'

7 4
8 4

答案 2 :(得分:0)

我已经以某种方式解决了这个问题。显然,主要原因是当我使用本地反应贴图依赖性时,它无法直接从标记组件注册输入,因此需要在主图中调用该方法。 但是感谢您的投入!