4

我在模态中有一个信息轮播。在 Ios 上,它可以完美加载并且可以打开和关闭。在 Android 上,如果初始状态设置为 true,它会完美打开,但是当它关​​闭并重新打开时,模式会慢慢淡入,并且轮播不存在。

我尝试过使用本机 Modal 和插件。使用本机我的关闭按钮和硬件后退按钮不会关闭 android 上的模式。我在 Galaxy Note 8 上进行测试。

任何帮助将不胜感激,因为我已竭尽全力尝试使其正常运行。

这是模态代码部分。

//MODAL ACTIONS
_openModal = () => {
  this.setState({ isModalVisible: true });
  console.log(this.state.isModalVisible);
  }

_closeModal = () => {
  this.setState({ isModalVisible: false });
  console.log(this.state.isModalVisible);
}

//RENDER MODAL CONTENT
_renderModalContent() {
    return (
      <Modal
        isVisible={this.state.isModalVisible}
        backdropColor={'black'}
        backdropOpacity={0.7}
        onBackButtonPress={this._closeModal}
        >
        <View style={styles.modalContainer}>
          <PersonalityDisplay
            ptData={ptTypes}
            opType={this.props.opType}
          />
          <View style={styles.closeButton}>
            <Button onPress={this._closeModal}>
              Close
            </Button>
          </View>
        </View>
    </Modal>
  )}

renderInfoPanel() {
    return (
      <Animated.View
        style={this.state.position.getLayout()}
        {...this.state.panResponder.panHandlers}
      >
        {this.renderUserInfo()}
        {this._renderMatchStamp()}
        {this._renderSideIcons()}
        {this._renderModalContent()}
      </Animated.View>
    )
  };


  render() {
    console.log(this.state.isModalVisible)
    return (
      <View>
        {this.renderInfoPanel()}
      </View>
    );
  }
}

谢谢

4

1 回答 1

0

您在代码中最好注意的几件事,

  1. 用后退按钮关闭正确的道具是onRequestClose但不是 onBackButtonPress

2.InsideonRequestClose或ButtononPress箭头功能应该这样使用onRequestClose={() => this._closeModal()}

3.Modal组件没有任何名为 isVisible 的 prop,实际上是visible.

纠正这些事情后Modal工作正常。

除了这些东西之外,当您发布代码时,请尝试仅发布与您的问题相关的内容。在您的代码中,三个方法和两个样式对象没有任何难以为其他人调试的实现。

于 2018-02-13T04:42:31.393 回答