反应:空 useState 字符串
React: empty useState string
我已经完成了这一页的大部分内容;我感觉很有成就感,即将记录我的进度的 .gif,我注意到 <input />
标签在通过 onClick
继承后并不清楚它的价值。我需要 newEmail
在完成后为空,更多的是因为输入字段的价值看起来很清晰。
我一直在浪费大量时间尝试做应该是可以想象到的最简单的任务。有什么帮助吗?此外,如有任何关于其他方面的专业提示,我们将不胜感激。
function EmailSettings() {
const [newEmail, setNewEmail] = useState("")
const [addEmail, {
data: addData,
error: addErr
}] = useMutation(ADD_EMAIL)
useEffect(() => {
if (addData && addData.addEmail) {
if (addData.addEmail === true) {
refetch()
setNewEmail("")
console.log(newEmail)
} else {
console.log(addErr)
}
}
}, [addData])
const onAddEmail = email => {
addEmail({ variables: { input: { email: email } } })
}
return (
<div className={styles.addEmail}>
<div className={styles.desc}>Add email address</div>
<input
type='email'
placeholder='Email address'
autoComplete="off"
className={styles.addInput}
onChange={e => setNewEmail(e.target.value)}
/>
<button
className={styles.addBtn}
onClick={() => onAddEmail(newEmail)}
>
Add
</button>
</div>
)
}
我猜你正在使用 react-apollo。不能只调用 onCompleted
回调吗?
const [addEmail, {
data: addData,
error: addErr
}] = useMutation(ADD_EMAIL, {
onCompleted: () => setNewEmail('')
})
编辑:
将状态值添加到输入中。
<input value={newEmail} ... />
您可以将输入值设置为状态
<input
type='email'
placeholder='Email address'
autoComplete="off"
className={styles.addInput}
onChange={e => setNewEmail(e.target.value)}
value={newEmail}
/>
然后按照@Akiba 的建议将状态值设置为空字符串
const [addEmail, {
data: addData,
error: addErr
}] = useMutation(ADD_EMAIL, {
onCompleted: () => setNewEmail('')
})
我已经完成了这一页的大部分内容;我感觉很有成就感,即将记录我的进度的 .gif,我注意到 <input />
标签在通过 onClick
继承后并不清楚它的价值。我需要 newEmail
在完成后为空,更多的是因为输入字段的价值看起来很清晰。
我一直在浪费大量时间尝试做应该是可以想象到的最简单的任务。有什么帮助吗?此外,如有任何关于其他方面的专业提示,我们将不胜感激。
function EmailSettings() {
const [newEmail, setNewEmail] = useState("")
const [addEmail, {
data: addData,
error: addErr
}] = useMutation(ADD_EMAIL)
useEffect(() => {
if (addData && addData.addEmail) {
if (addData.addEmail === true) {
refetch()
setNewEmail("")
console.log(newEmail)
} else {
console.log(addErr)
}
}
}, [addData])
const onAddEmail = email => {
addEmail({ variables: { input: { email: email } } })
}
return (
<div className={styles.addEmail}>
<div className={styles.desc}>Add email address</div>
<input
type='email'
placeholder='Email address'
autoComplete="off"
className={styles.addInput}
onChange={e => setNewEmail(e.target.value)}
/>
<button
className={styles.addBtn}
onClick={() => onAddEmail(newEmail)}
>
Add
</button>
</div>
)
}
我猜你正在使用 react-apollo。不能只调用 onCompleted
回调吗?
const [addEmail, {
data: addData,
error: addErr
}] = useMutation(ADD_EMAIL, {
onCompleted: () => setNewEmail('')
})
编辑:
将状态值添加到输入中。
<input value={newEmail} ... />
您可以将输入值设置为状态
<input
type='email'
placeholder='Email address'
autoComplete="off"
className={styles.addInput}
onChange={e => setNewEmail(e.target.value)}
value={newEmail}
/>
然后按照@Akiba 的建议将状态值设置为空字符串
const [addEmail, {
data: addData,
error: addErr
}] = useMutation(ADD_EMAIL, {
onCompleted: () => setNewEmail('')
})