React 19 中的 useActionState Hooks

在 React 官网中有 19-beta 版本的文档,其中就引入了一个新的 Hook useActionState。该 Hook 是作为表单的一个操作,不仅可以获得表单内容,还可以把表单事件添加到 Hook里。下面我们来看一下 useActionState 的使用。

useActionState

因为该 Hook 是为表单事件特定的,所以我们绑定在 form 的 action 属性上。该 Hook 接收三个参数,其中前两个参数为必须,一是表单行为事件,也就是 action 方法,第二个参数是表单中某个属性的初始状态值 initialState,第三个参数是可选项 permalink。useActionState 的返回参数为两个,第一个是新的属性状态值,第二个是表单行为事件。

const [newState, formAction] = useActionState(action, initialState)

注意的是,第一次渲染的时候,newState 等于 initialState

接下来我们定义一个 action,把该 action 传入到 useActionState 中,并把返回的新的事件绑定在表单上。

async function incrementAction(previousState, formData) {
    return previousState + 1
}

const [newState, formAction] = useActionState(incrementAction, 0)

<form>
    {newState}
    <button formAction={formAction} > increment </button>
</form>

注意的事,自定义的事件本身也接收两个参数,在这里即是 incrementAction,第一个参数是之前的属性状态值,第二个参数是整体表单值,也就是 FormData。这是一个标准规范值,以 key/value 组成。如果有多个 input 标签和 select 标签,我们可以通过  formData.get('key') 来获取响应的表单内容。

接下来我们可以通过我们自定义的事件来控制表单行为和获取数据。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值