【问题标题】:this is a reserved word React Native这是 React Native 的保留字
【发布时间】:2018-10-29 21:08:37
【问题描述】:

我一直在尝试渲染这个。但一直以来,这是一个保留字的错误都会发生。它说第 170 行等于 return 语句中的函数 {this.onRenderValidation(validation)}。有谁知道我做错了什么? 谢谢各位!

onRenderValidation(validation){


  <Card>

    <CardSection>
      <Input
        label="Email"
        placeholder="email@gmail.com"
        onChangeText={this.onEmailChange.bind(this)}
        value={this.props.email}
      />
    </CardSection>
    <Text>
    {this.renderValidationError(validation.email)}
    </Text>
    <CardSection>
      <Input
        secret={true}
        label="Passwort"
        placeholder="password"
        onChangeText={this.onPasswordChange.bind(this)}
        value={this.props.password}
      />
    </CardSection>
    <Text>
    {this.renderValidationError(validation.password)}
    </Text>
    //{this.renderError()}

    <CardSection>
      {this.renderButton()}
    </CardSection>
    <CardSection>
      {this.render2Button()}
    </CardSection>
  </Card>

}

render(){
let validation=this.submitted ? this.validator.validate(this.state) : 
this.state.validation;
return(

   {this.onRenderValidation(validation)}

)
}
}

【问题讨论】:

    标签: react-native react-redux


    【解决方案1】:

    问题是您返回的是一个对象,而不是 JSX 元素。只需将其更改为:

    render(){
        let validation = this.submitted ? this.validator.validate(this.state) : this.state.validation;
        return this.onRenderValidation(validation);
    }
    

    或者,将其包装在 JSX 元素中:

    render(){
        let validation = this.submitted ? this.validator.validate(this.state) : this.state.validation;
        return (
          <div>{this.onRenderValidation(validation)}</div>
        )
    }
    

    有关为什么会发生这种情况的更多信息,请在此处查看类似问题和最佳答案:React.js - Syntax error: this is a reserved word in render() function

    【讨论】:

    • 感谢您的回答!有效。现在确实发生了另一个错误:渲染没有返回任何内容。你知道为什么吗?
    • 您需要在 onRenderValidation 函数中返回 JSX 元素。因此,将该函数中的所有内容包装在 return() 中,如下所示:onRenderValidation = (validation) =&gt; { return (&lt;Card&gt;...&lt;/Card&gt;)} 如果您注意到,我还修改了您的函数以使用粗箭头语法。这样onRenderValidation 中的this 就会按照您的预期行事。
    猜你喜欢
    • 2017-12-08
    • 2020-05-14
    • 1970-01-01
    • 2018-03-12
    • 2019-03-12
    • 2020-05-16
    • 2015-12-16
    • 2019-08-11
    • 2018-11-08
    相关资源
    最近更新 更多