React Native:钩子只能在函数组件的主体内部调用

时间:2019-11-21 14:10:37

标签: reactjs react-native

代码:

import React, { Component } from 'react'
import {
  View,
  Text,
  TextInput
} from 'react-native'

export default class Home extends Component {
  static navigationOptions = ({ navigation }) => {
    return {
      title: 'Home'
    }
  }
  render () {
    const [value, onChangeText] = React.useState('Useless Placeholder');
    return (<View>
      <Text>Home</Text>
      <TextInput
        style={{ height: 40, borderColor: 'gray', borderWidth: 1 }}
        onChangeText={text => onChangeText(text)}
        value={value}
      />
    </View>);
  }
}

学习React Native,遇到此错误,如何更正上面的代码?

我模仿的官方示例:https://reactnative.cn/docs/textinput

1 个答案:

答案 0 :(得分:0)

您正在使用类组件,并且挂钩只能在功能组件中使用。 使用setState或将类转换为函数类,如

export default const Home = props => {

// your code


}

此外,在渲染器内部设置状态不是一个好主意,因此您应该将其置于外部。