可以在React钩子内调用函数



我有一个基于Hooks 的组件,如下所示

import React, { useEffect, useState } from 'react';
import {
StyleSheet,
Text,
View,
TouchableOpacity,
Animated
} from 'react-native';
import CAStyles from '../res/CAStyles';
const CACard = (props ) => (
<TouchableOpacity onPress={props.cardTouched}>
<View style={[styles.cardContainer, CAStyles.ALIGN_CENTER]} width={props.width} height={props.height}>
<Text style={styles.textStyle}>{props.title}</Text>
</View>
</TouchableOpacity>
);

export default CACard

我希望钩子中有自己的状态值和函数。但它抛出了语法错误。我知道使用基于类的组件是可能的,但不确定为什么使用Hooks是不可能的。

我后来试图找到解决办法的努力是徒劳的。有人能帮我吗。提前谢谢。

感谢@JMadelaine的指出。我改成了下面的样子,一切都很好。

const CACard = (props ) => {
return (
<TouchableOpacity onPress={props.cardTouched}>
<View style={[styles.cardContainer, CAStyles.ALIGN_CENTER]} width={props.width} height={props.height}>
<Text style={styles.textStyle}>{props.title}</Text>
</View>
</TouchableOpacity>
)

};
正如JMadelaine正确指出的那样。您需要在功能组件定义中编写useState。像这样重新构造代码:
import React, { useEffect, useState } from 'react';
import {
StyleSheet,
Text,
View,
TouchableOpacity,
Animated
} from 'react-native';
import CAStyles from '../res/CAStyles';
const CACard = (props) =>{
const [aStateVar, setAStateVar] = useState(false);
return (
<TouchableOpacity onPress={props.cardTouched}>
<View style={[styles.cardContainer, CAStyles.ALIGN_CENTER]} width={props.width} height={props.height}>
<Text style={styles.textStyle}>{props.title}</Text>
</View>
</TouchableOpacity>
);
};
export default CACard;

相关内容

  • 没有找到相关文章

最新更新