我正在尝试使用状态将一个表单输入值复制到另一个表单输入值,但状态没有更新
我创建了一个带有按钮的表单,其中左侧表单输入的值应复制到右侧表单输入。这是我的代码:
const ReviewContactForm = (props) => {
const contact = props.currentContact;
const dbContact = useDbContact(contact.Group);
const [dbSecName, setDbSecName] = useState("");
async function getDbContact() {
let secName = await dbContact.SecretaryName;
setDbSecName(secName);
}
getDbContact();
function acceptSecName(e) {
e.preventDefault();
setDbSecName(contact.SecretaryName);
}
return (
<>
<Form>
<Form.Row>Secretary's Name</Form.Row>
<Form.Row>
<Form.Group as={Col} className="mb-2">
<Form.Control type="input" name="1secname" value={contact.SecretaryName} readOnly />
</Form.Group>
<Form.Group as={Col} className="mb-2">
<Form.Control type="input" name="2secname" value={dbSecName || ""} readOnly />
</Form.Group>
<Button className="PrimaryButton" onClick={acceptSecName}>
Accept proposed
</Button>
<div className="divider" />
<Button className="SecondaryButton" size="sm">
Revert
</Button>
</Form.Row>
</Form>
</>
);
};
无论我做什么,dbSecName的状态都不会改变。我试着设置一个新的常量。我尝试使onclick函数异步并等待。如果我为我试图设置的变量的值添加console.log
,我可以正确地看到它,但是dbSecName的console.log总是显示原始值。
我真的不知道下一步该怎么办。我在想,也许我最初设置表单输入的方法是错误的。
因此,我试图实现的是,当单击“Accept proposed”按钮时,“2secname”表单输入将使用“1secname”中的值重新呈现。
非常感谢任何帮助
在下面的代码片段中
<Form.Control type="input" name="2secname" value={dbSecName || ""} readOnly />
将值替换为仅dbSecName,而不是dbSecName | |“
看看这是否有效
问题内容: 我正在尝试新的React Hooks,并有一个带有计数器的Clock组件,该计数器应该每秒增加一次。但是,该值不会增加到超过一。 问题答案: 原因是传递给的闭包中的回调仅访问第一个渲染器中的变量,而无法访问后续渲染器中的新值,因为第二次未调用。 回调中的值始终为0 。 就像您熟悉的状态挂钩一样,状态挂钩有两种形式:一种是处于更新状态的状态,另一种是将当前状态传入的回调形式。您应该使用第
我正在试用新的反应挂钩,并有一个时钟组件,计数器应该每秒钟增加一次。但是,该值不增加超过1。
我正在尝试新的hooks功能,并坚持认为我的状态没有更新。 实际上,状态已更新(我可以在console.log中看到更新的值,并且我的组件会重新运行useEffect),但是useEffect方法使用我的旧状态,并仅将签名保存给第一个用户,而活动用户在状态中确实发生了更改。 我想过添加useCallback,并将我的方法移动到use效果或组件本身,但我可以设法让它工作。 状态: 这是我的效果: 这
我有一个小的井字游戏,一切都很好,除了我正在努力寻找在代码中放置完成功能的位置。让我给你看; 这基本上是整个游戏,我在另一个文件中有一个整理函数,就像这样; 完成功能也可以正常工作,但是由于useState是异步工作的,我知道这一点,我正在努力把它放在哪里。如果我把点击功能放在里面,它就不能对新的状态做出反应,只能对之前的状态做出反应。如果我把外面加上只是if语句,它会说渲染太多,因为我正在设置获
我正在React中使用useState钩子,状态将不会在
我目前正在处理一个注册表单,以下是我的代码片段: 每个状态都用于表单的受控输入。 基本上,我想做的是在用户成功注册后,我希望状态返回到初始状态,并清除字段。 在中手动将每个状态设置回空字符串是非常必要的。我想知道React是否有一个方法或函数可以将状态重置回初始值?