最近,React 18 发布了,我将我的项目升级到了 18。我注意到我所有由 Jest 和 Enzyme 编写的单元测试都失败了。我使用 Enzyme 的 mount 作为组件的包装,并注意到以下错误:
TypeError: Cannot read property 'child' of undefined
Run Code Online (Sandbox Code Playgroud)
我还尝试检查它是否支持 React 18,但找不到任何合适的链接。
有人对此有什么想法吗?或者在这种情况下有什么可以遵循的解决方法吗?
我有一个像这样的对象数组:
const items = [
{ country:"USA", level:1},
{ country:"Canada", level:2},
{ country:"Bangladesh", level:3},
]
Run Code Online (Sandbox Code Playgroud)
在我的 Form 组件中(我使用的是 React Formik 库),我正在渲染这样的项目:
<Field name="color" as="select" placeholder="Favorite Color">
{items.map((item,index)=>(
<option>{item.country}</option>
))}
</Field>
<Field name="color" as="select" placeholder="Favorite Color">
{items.map((item,index)=>(
<option>{item.level}</option>
))}
</Field>
Run Code Online (Sandbox Code Playgroud)
现在,我需要根据第一个选择输入中的项目选择来更新第二个选择项目的值。例如,当我从第一个选择中选择“USA”然后在第二个选择中它会更新值并呈现“1”。任何想法或建议将不胜感激。到目前为止,我的组件如下所示:
import React from 'react';
import { Formik, Field } from 'formik';
import { Modal } from 'react-bootstrap';
const AddNewForm = () => {
const items = [
{ country:"USA", level:1},
{ country:"Canada", level:2},
{ country:"Bangladesh", level:3},
]
const handleUpdate = …Run Code Online (Sandbox Code Playgroud)