本机真棒警报自定义视图抛出错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本机真棒警报自定义视图抛出错误相关的知识,希望对你有一定的参考价值。

我正在使用react-native-awesome-alerts插件在我的屏幕上显示警报。我已经为警报创建了一个自定义视图,但它会抛出这个错误

没有测量功能,无法将没有YogaNode的孩子添加到父级! (尝试将'RCTRawText [text:}]'添加到'RCTView')

我的代码是这样的:

_displayNotifyAlert(){
  if(this.state.notifyAlert == true){
    return (
      <AwesomeAlert
        show={true}
        title="Service Cancellation"
        message="Tell the shop why are you cancelling their services."
        messageStyle={{ textAlign: 'center' }}
        customView={this.renderCustomAlertView()}
        showCancelButton={true}
        showConfirmButton={true}
        cancelText="Cancel"
        confirmText="Cancel Service"
        confirmButtonColor={Colors.default}
        onCancelPressed={() => this._closeNotifyAlert()}
        onConfirmPressed={() => this._cancelServices()}
      />
    )
  }
}

renderCustomAlertView = () => (
  <View style={[ AppStyles.input ]}>
    <TextInput
      placeholder="Write your reason briefly."
      underlineColorandroid="transparent"
      style={{ textAlignVertical: 'top', height: 100 }}
      numberOfLines={5}
      multiline={true}
      maxLength={200}
      onChangeText={(cancel_reason) => this.setState({cancel_reason})} />
    }
  </View>
)

如果我删除此行customView={this.renderCustomAlertView()},错误将消失。我没有在renderCustomAlertView函数中看到任何不正确的代码。所以我无法追查错误的原因。以前有人遇到过同样的问题吗?

答案

你的renderCustomAlertView函数末尾有一个额外的“}”。将此功能更改为以下内容,它应该工作:

renderCustomAlertView = () => (
  <View style={[ AppStyles.input ]}>
    <TextInput
      placeholder="Write your reason briefly."
      underlineColorAndroid="transparent"
      style={{ textAlignVertical: 'top', height: 100 }}
      numberOfLines={5}
      multiline={true}
      maxLength={200}
      onChangeText={(cancel_reason) => this.setState({cancel_reason})} />
  </View>
)
另一答案

我不能在你的帖子中发表评论,因为声誉很低,所以我把它作为一个答案。根据我的反应本机和基于您的代码的知识您在renderCustomAlertView中缺少返回。

所以你的代码必须是这样的

   renderCustomAlertView = () => {
             return(
              <View style={[ AppStyles.input ]}>
                  <TextInput
                     placeholder="Write your reason briefly."
                     underlineColorAndroid="transparent"
                     style={{ textAlignVertical: 'top', height: 100 }}
                     numberOfLines={5}
                     multiline={true}
                     maxLength={200}
                     onChangeText={(cancel_reason) => this.setState({cancel_reason})} />
           </View>
     )
   }

以上是关于本机真棒警报自定义视图抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

在片段中创建自定义列表视图时出错。必需的活动,找到的片段

在片段中创建自定义列表视图时出错所需活动,找到片段

如何调用我的自定义警报控制器功能以显示在其他视图控制器中?

显示相机和画廊权限的自定义警报 swift 3

Android:在片段内膨胀自定义视图

为片段制作自定义列表视图?