reactjs - 表单复选框动画不起作用,但表单确实起作用
问题描述
我对 React 和 Formik(2.1) 有一个奇怪的问题。
我的页面上有一组复选框,用户可以打开或关闭它们。
幕后部分正在工作......用户选择的复选框值正在发送到 API 后端,当我将它们写出到浏览器控制台时,我会看到选定的值。
但是,在小复选框方块内出现或消失的实际复选框永远不会显示。
我也不知道为什么。我尝试更新到最新版本的 Formik 和 React,但它没有改变。
由于仍在传递实际值,因此我无法找到调试它的方法。
这是生成复选框的 React 组件:
const PlayerList = () => {
const [data, setData] = useState([]);
useEffect(() => {
const fetchData = async () => {
const result = await axios(
'https://localhost:44376/api/players',
);
setData(result.data);
};
fetchData();
}, []);
return (
<>
{data.map((item, index) => (
<label key={index}>
<Field id={item.id} key={index} type="checkbox" name="gamePlayers" value={item.id} />
{item.name}
</label>
))}
</>
);
}
export default PlayerList;
该组件将生成如下所示的表单输入:
<input name="gamePlayers" id="1" type="checkbox" value="1">
这是具有 formik 形式的 React 组件:
<Formik
initialValues={{
gamePlayers: [],
email: "",
name: "",
phone: ""
}}
onSubmit={async values => {
await new Promise(resolve => setTimeout(resolve, 500));
axios({
method: "POST",
url: "https://localhost:44376/api/gameentry",
data: JSON.stringify(values)
});
console.log(JSON.stringify(values, null, 2));
}}
>
{props => {
const {
values,
touched,
isSubmitting,
handleSubmit,
handleReset,
setFieldValue
} = props;
return (
<form onSubmit={handleSubmit}>
<div id="gameSection">Game Information</div>
<div id="players">
<label htmlFor="gamePlayers">
Game Player Type (check all that apply)
</label>
<PlayerList />
</div>
);
}}
</Formik>
</div>
);
所以一切看起来都很好,表格看起来不错。只是复选框动画不起作用,我想不出调试的方法,因为从技术上讲,它正在起作用。
有没有人见过这样的东西?
这是代码沙箱的链接。这有点不同,因为我必须修改它才能在沙盒环境中工作。
https://codesandbox.io/s/inspiring-hodgkin-exufn
谢谢!
解决方案
在 Formik 中实现一个复选框可能很棘手。你看到你必须将输入的 JSX 连同它的标签一起传递给component
道具。
请在下面找到我的工作。
推荐阅读
- mysql - Centos 7 , WHM 高 Mysql&MariaDB CPU 使用率 %600
- android - Android setMinimumLatency 不工作 API 23
- java - 如何正确设置带有 Fragments 的 RecyclerView 作为子项
- reactjs - 组件更新与组件卸载反应性能
- java - 如何在一些用户提供的整数之后用 10 个偶数整数填充数组?
- database - 为什么我的数据库读取会阻止我的播放框架服务器?
- matlab - 为什么 MATLAB 内置函数结果与我使用相同表达式自己定义函数时得到的结果不同?
- arrays - Bash - 如何获取数组中特定元素的值
- sql - 连接表时无法获得不同的结果
- python-3.x - Regarding try/except in python