【发布时间】:2021-10-15 12:32:13
【问题描述】:
在我的 expo typescript 应用程序中,我在根组件中有一个函数:
const getCardType = (type = ECardType.WOOD) => {
setCardType(type);
};
并将它传递给我的第一个子组件:
<Slider data={slideData} autoPlay={false} getCardType={getCardType} />
这是我传递函数的第一个子组件,它类型声明:
readonly getCardType?: (type: ECardType) => void;
const Slider: React.FunctionComponent<ISliderProps> = ({
data,
autoPlay,
getCardType,
})
之后我将它传递给第二个子组件:
<SliderCardItem cardItem={item} index={index} getCardType={getCardType} />
而在这个 SliderItem 组件中,我使用了这个函数:
useEffect(() => {
getCardType(cardType);
}, [cardType]);
但出现 TS 错误:无法调用子组件中可能“未定义”的对象
我在 onPress()
中设置了下面的 cardType
我仅在此组件中出现此错误
有解决此错误的想法吗?
【问题讨论】:
-
顺便说一句...一个名为
getCardType的函数在内部调用了一个名为setCardType的函数,这听起来像是你在为以后混淆的错误做准备。它实际上不是获取一个值,而是设置一个值。
标签: javascript typescript react-native undefined