在反应原生中使用ref时的流错误

时间:2018-04-17 17:01:23

标签: react-native flowtype

我使用ref来标记<ScrollView>中的来自 代码有效,但我不断收到此流错误

Cannot assign input to this.inputs.emailInput because null [1] is 
incompatible with object literal [2].

 src/authentication/containers/SignIn.js
[ .2] 105│     emailInput: {},
    :
 199│             }}
 200│             placeholder={I18n.t('email')}
 201│             ref={(input) => {
 202│               this.inputs.emailInput = input;
 203│             }}
 204│             returnKeyType={'next'}
 205│             style={styles.textInput}

 /private/tmp/flow/flowlib_3c65178/react.js
[1] 184│   | ((React$ElementRef<ElementType> | null) => mixed)

这是关注代码

输入的定义: 在我的反应组件中

inputs= {
  lastNameInput: {},
  emailInput: {},
  postalCodeInput: {},
  phoneNumberInput: {},
};

<TextInput>函数中的render()元素:

<TextInput
        blurOnSubmit={false}
        onChangeText={text => this.setState({ lastName: text })}
        onSubmitEditing={() => {
          this.inputs.emailInput.focus();
        }}
        placeholder={I18n.t('lastName')}
        ref={(input) => this.inputs.lastNameInput = input}
        returnKeyType={'next'}
        style={styles.textInput}
        underlineColorAndroid="transparent"
        value={lastName}
      /> 

1 个答案:

答案 0 :(得分:0)

我认为这是因为ref回调可以将null传递给您提供的函数。我相信在卸载引用的组件时,它会执行此操作。