1

嗨,我试图将 forwardRef 添加到子组件,但在添加 forwardRef 时得到以下信息: TypeError: Component is not a function

组件定义如下:

import React from 'react';
import { forwardRef } from 'react';
import { TextInputFocusEventData } from 'react-native';
import { NativeSyntheticEvent, StyleSheet } from 'react-native';
import { Input, InputProps } from 'react-native-elements';
import { Metrics, Colors } from '../../theme';
import Icons from '../Icons';


const CustomTextInput2 = forwardRef<TextInput, ICustomtextnputProps>((props, ref) => {
    const { name, required } = props;

    return (
        <Input
            rightIcon={<Icons name="right" />}
            placeholder={name?.concat(required ? '*' : '')}
            inputContainerStyle={styles.inputContainer}
            inputStyle={styles.inputText}
            {...props}
        />
    )
});
....

这是堆栈跟踪:

ExceptionsManager.js:180 TypeError: Component is not a function

This error is located at:
    in Unknown (at AddDetailsModal/index.tsx:67)
    in RCTView (at View.js:34)
    in View (at AddDetailsModal/index.tsx:66)
    in RCTView (at View.js:34)
    in View (at createAnimatedComponent.js:217)
    in AnimatedComponent (at createAnimatedComponent.js:278)
    in AnimatedComponentWrapper (at CustomModal/index.tsx:71)
    in RCTView (at View.js:34)
    in View (at createAnimatedComponent.js:217)
    in AnimatedComponent (at createAnimatedComponent.js:278)
    in AnimatedComponentWrapper (at TouchableOpacity.js:221)
    in TouchableOpacity (at TouchableOpacity.js:271)
    in Unknown (at CustomModal/index.tsx:70)
    in RCTView (at View.js:34)
    in View (at KeyboardAvoidingView.js:220)
    in KeyboardAvoidingView (at CustomModal/index.tsx:69)
    in RCTView (at View.js:34)
    in View (at AppContainer.js:107)
    in RCTView (at View.js:34)
    in View (at AppContainer.js:134)
    in AppContainer (at Modal.js:228)
    in RCTView (at View.js:34)
    in View (at Modal.js:249)
    in VirtualizedListContextResetter (at Modal.js:247)
    in RCTModalHostView (at Modal.js:234)
    in Modal (at CustomModal/index.tsx:63)

有什么我必须更改才能向该组件添加 forwardRef 吗?

4

1 回答 1

6

通过 React.forwardRef 包装组件并从父组件传递 ref 后,您需要重新加载应用程序!我现在遇到了这个问题,看到了同样的错误信息,只需重新加载应用程序即可解决

于 2021-12-25T00:55:38.647 回答