不断收到错误消息“未定义不是对象(正在评估'_this.refs.name.value')”

时间:2018-10-07 23:38:07

标签: reactjs react-native

我正在做ReactNative移动应用程序。 WebApp运行平稳,一切正常。但是,当我将所有内容传输到移动部件时,在输入字段中输入文本时会遇到错误。我在做什么错,我的错误是什么?这是我的代码:

{{1}}

1 个答案:

答案 0 :(得分:1)

我不认为像这样引用TextInput组件(使用字符串引用)是实现此目的的最佳方法。但是,如果需要,可以使用this.refs.name._lastNativeText而不是this.refs.name.value来访问TextInput的当前值。

我认为,更好的方法是使用onChangeText()回调返回的值。您可以这样做:

import React from 'react';
import { StyleSheet, TextInput, View } from 'react-native';

export default class App extends React.Component {

  constructor(props) {
    super(props);

    this.state = {
      name: null,
      rating: null,
      message: null,
    }
  }

  render() {
    return (
      <View style={styles.container}>
        <TextInput
          placeholder="Your Name"
          onChangeText={text => this.setState({name: text})}
        />
        <TextInput
          placeholder="Your Rating"
          onChangeText={text => this.setState({rating: text})}
        />
        { this.state.name && this.state.rating &&
        <Text>Hi {this.state.name}, your rating for this app is {this.state.rating}.</Text>
        }
      </View>
    );
  }
}

我尚未测试此代码,如果遇到一些错误,请在下面注释。