gpt4 book ai didi

javascript - Jestjs 与 Expo-cli。不变违规 : Element type is invalid

转载 作者:行者123 更新时间:2023-11-30 06:14:11 25 4
gpt4 key购买 nike

Jest 好像不能使用我导入的组件。

这通常是导出/导入设置方式的问题,但我的控制台日志显示组件正在导入到文件中,但没有进入描述函数(参见下面的内联注释)

import ValidInput from '../components/ui/ValidInput';
console.log(typeof ValidInput) // 'function'

describe('ValidInput', () => {
it('Renders succesfully', () => {
console.log(typeof ValidInput) // 'undefined'
const validInputInst = renderer.create(
<View>
<ValidInput
inputType='email'
validationRules={{
isEmail: true,
}}
/>
</View>
)
const ValidInput = validInputInst.root.findByType(ValidInput)
})
})

组件:

export default class ValidInput extends Component {
constructor (props) {
super(props);
}
...

错误:不变违规:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:未定义。您可能忘记从定义它的文件中导出您的组件,或者您可能混淆了默认导入和命名导入。

期望能够渲染组件

最佳答案

原来问题出在这一行:

const ValidInput = validInputInst.root.findByType(ValidInput)

还有一个在这里:inputType='email'

由于某些原因,虽然 ValidInput 在 describe() 的范围内未定义,但如果您尝试分配一个名为 ValidInput (const ValidInput) 的变量,在导入了与上面同名的内容之后,它将抛出 Invariant Violation 错误就好像你在尝试调用你还没有导入的东西。

关于javascript - Jestjs 与 Expo-cli。不变违规 : Element type is invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57239389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com