_this.setState不是函数

时间:2017-10-25 08:58:53

标签: reactjs react-native

目前正在学习本地反应并试图编写一些我遇到此错误的事情:

  

_this.setState不是一个功能。(在' _this.setState({myState:createSignature()})',' _this.setState'未定义)

我有路由并得到我这样的页面:

import React from 'react'
import { TouchableOpacity, Text, View } from 'react-native'
import { Actions } from 'react-native-router-flux'
import Moment from 'react-moment';
import EventEmitter from "react-native-md5";
import md5 from "react-native-md5";

const devID = 0000;
const authKey = "XXXXXXXXXXXXXXXXXXX";

function createSignature(){
    var ut = new Date();
    var time = <Moment utc={true} element={Text} format="YYYYMMDDHHmmss">{ut}</Moment>;
    var signaturePre = devID + "createsession" + authKey + time;
    return md5.hex_md5(signaturePre);
}

const About = () => {
   const goToHome = () => {
      Actions.home()
   }   

state = {
      myState: 'Lorem ipsum dolor sit amet,'
   }
   updateState = () => {
      this.setState({ myState: createSignature() })
   }
      return (
         <View>
            <Text onPress = {this.updateState}>
               {this.state.myState}
            </Text>
            <TouchableOpacity style = {{ margin: 128 }} onPress = {goToHome}>
                <Text>This is ABOUT</Text>
            </TouchableOpacity>  
        </View>
  )
}
export default About

我不希望有人提供解决方案我想了解我错过的内容我也尝试使用道具,但这会导致同样的错误。

错误提示第29行

return(

1 个答案:

答案 0 :(得分:3)

您的About组件是一个功能组件,因此没有this属性和状态。通过扩展React.Component

来创建它
class About extends React.Component {
   goToHome = () => {
      Actions.home()
   }   

   state = {
      myState: 'Lorem ipsum dolor sit amet,'
   }
   updateState = () => {
      this.setState({ myState: createSignature() })
   }
      return (
         <View>
            <Text onPress = {this.updateState}>
               {this.state.myState}
            </Text>
            <TouchableOpacity style = {{ margin: 128 }} onPress = {this.goToHome}>
                <Text>This is ABOUT</Text>
            </TouchableOpacity>  
        </View>
  )
}
export default About