我无法在按钮的onClick事件中使用setState更新我的状态。我尝试在函数中放入console.log
,它可以工作,但setState不工作
我试过两种方法,一种是:
<button onClick={() => setColEdit("")} className="bg-red-500 text-white p-1">
<i className="pi pi-times"></i>
</button>
二是:
const cancelEdit = () => {
setColEdit((edit) => edit = "123")
}
<button onClick={cancelEdit} className="bg-red-500 text-white p-1">
<i className="pi pi-times"></i>
</button>
我尝试将console.log
放入arrow函数中,它可以工作,但状态没有更新
我不知道我的代码出了什么问题,或者是否有我不知道的关于setState如何工作的东西。或者有其他解决我的问题的方法?谢谢
EDIT非常抱歉,以下是完整代码
import { useState } from "react"
import { NumericFormat } from "react-number-format"
const Component: NextPageWithLayout= () => {
const [colEdit, setColEdit] = useState("")
const cancelEdit = () => {
setColEdit("")
}
return (
<span onClick={() => setColEdit("sk_123")}>
{colEdit == "sk_123" ? (
<form className="flex items-center gap-1">
<input type={'text'} defaultValue={1000} autoFocus />
<button onClick={cancelEdit} className="bg-red-500 text-white p-1">
<i className="pi pi-times"></i>
</button>
</form>
) : (
<NumericFormat
value={1000}
prefix="Rp "
displayType='text'
thousandSeparator='.'
decimalSeparator=','
/>
)}
</span>
3条答案
按热度按时间dldeef671#
希望您的通用组件结构至少包含以下代码:
完整样本代码:
vwoqyblh2#
一定是
useState
声明有问题下面是一个工作示例,其中包含3种方法来完成您要尝试完成的任务
https://codesandbox.io/s/upbeat-leakey-m4lgrd
kgqe7b3p3#
请检查您的状态。