<Field as="select">我的Formik有问题。效果onChange不佳 - 无论我选择什么选项,当我提交表单时,它都会以空字符串形式发送player1and 。player2
例如输出console.log(values):
{ id: '10', player1: '', player2: '', winner: '1', date: '2021-12-16' }
Run Code Online (Sandbox Code Playgroud)
当我删除onChange它时效果很好,但我需要 onChange 和 selectedPlayer 状态,因为如果我选择 a player1,我不希望他在第二个选项中可见,反之亦然。为什么当更改时value,我的属性没有改变?看起来它获取的初始值是空字符串。FieldselectedPlayerselectedPlayer
import { Field, Form, Formik } from 'formik';
import { connect } from 'react-redux';
import {addMatchAction} from "../../ducks/matches/operations";
import {getAllPlayers} from "../../ducks/players/selectors";
import {useState} from "react";
const MatchesForm = ({ addMatchAction,error,players }, props) => {
const handleSubmit = (values) …Run Code Online (Sandbox Code Playgroud) 我正在发出一个简单的Redis'请求,该请求应该返回数据库中的所有值(而不是键)。问题是我的函数在事件开始tab之前返回.forEach。我为什么知道这个?Myconsole.log(tab)的结果在每次迭代之前打印console.log(cards)。我的解释器还在.forEach函数内部告诉我"Promise returned from forEach argument is ignored". 我在那里做错了什么?为什么 async/await 不能在内部工作.forEach?
router.get("/", async (req, res) => {
try {
const keys = await client.keys("*")
//console.log(result)
const tab = []
await keys.forEach(async (key) => {
const cards = await client.smembers(key)
console.log(cards)
tab.push(cards)
})
console.log(tab)
return res.send(tab)
} catch (err) {
console.error(err)
}
});
Run Code Online (Sandbox Code Playgroud)