我有一个自定义组件,用于包装Limited Style Inheritance 的原生<Text>
组件。在我的自定义组件中,我在function
style
中有prop
来动态评估自定义font
prop
并确定要呈现的字体。
这是我的组成部分:
import React from 'react';
import { Text } from 'react-native';
import styles from './styles';
const evaluateFont = (font = 'regular') => {
console.log('[evaluateFont]');
switch (font) {
case 'regular':
return styles.fontRegular;
case 'semibold':
return styles.fontSemibold;
case 'bold':
return styles.fontBold;
}
};
const MyText = (props) => {
const { children, style, font, ...rest } = props;
return (
<MyText>
<Text
style={[evaluateFont(font), style]}
{...rest}
>
{children}
</Text>
</MyText>
);
};
export default MyText;
但是在运行我的应用时,我遇到了Maximum call stack size exceeded
错误。
为什么我的evaluateFont()
fn
导致了这个&amp;继续跑?
答案 0 :(得分:1)
您的问题不是evaluateFont()
,而是您的退货声明中的<MyText></MyText>
造成了导致堆叠问题的问题。尝试删除无关的<MyText></MyText>
并查看其是否有效。