react通过onChange传输select的value数据

js 复制代码
     <Select
        label="Target parking space"
        checkIconPosition="right"
        placeholder="choose a parking space"
        value={targetParkingSpace}
        searchable
        onChange={store.getState().setTargetParkingSpace}
        data={parkingSpaceTrackIdList}
      />
      <Select
js 复制代码
setTargetParkingSpace: (id) => {
        Subjects.TargetParkingSlotChanged.next({
          prev: get().simulationSettings.target_parking_space_id,
          next: id,
        });
        set(
          produce((state) => {
            state.simulationSettings.target_parking_space_id = id;
          })
        );
      },

当 Select 组件的选项变更时,如果组件本身就是设计为直接传递新的值(在这种情况下是选定的车位 ID)给 onChange 回调函数,那么便不需要从事件对象中提取该值。在你的代码中,store.getState().setTargetParkingSpace 准备好接收该 ID,并且被用作 onChange 的回调。

复制代码
<Select
  ...
  onChange={store.getState().setTargetParkingSpace}
  ...
/>

在这种情况下,Select 组件内部会直接调用 store.getState().setTargetParkingSpace 并传递选定的 ID 作为参数。因此,即使没有明确地写出 (value) => ... 这样的箭头函数,onChange 事件也能够成功工作并且传递 ID。

这种行为意味着 Select 组件的实现方式是预期其 onChange 属性将一个值传递给回调函数,而不是传递一个完整的事件对象。这在一些UI库中很常见,尤其是那些旨在简化表单处理的库。

代码示例中的剩余部分提供了关于如何使用 produce 函数(来自Immer库)更新状态以及通过 RxJS Subject 发送通知的方法。这部分与直接的 onChange 处理逻辑分离,展示了如何在状态更新后进行额外的操作。

相关推荐
麦麦麦当劳大王6 小时前
【油猴脚本】Boss直聘 岗位职责复制
开发语言·前端·javascript
只睡四小时7 小时前
Three.js Sub-tick:漏判 60.7%→0
开发语言·javascript·性能优化·ecmascript·游戏开发·three.js·碰撞检测
excel8 小时前
基于 GPT 的自动发布文章接口方案:从一句话或一张图片生成并发布内容
前端·javascript·后端
OpsEye14 小时前
大模型 Token 计量不准,是什么原因,怎么解决??
javascript·ai编程
独隅15 小时前
WebStorm Windows 版 React / Next.js 实战替换指南
javascript·windows·webstorm
冷眸_16 小时前
同名食材不能直接相减:一个 JavaScript 用量模型的边界
javascript
apollo_qwe16 小时前
接口超时了,前端为什么不能直接重试?
javascript·http
終不似少年遊*20 小时前
【安全业务Agent】从场景到编排
python·react.js·ai·langchain·agent·安全架构·工作流
toooooop820 小时前
CRMEB 故障排查笔记:安全网关只放行 GET/POST 怎么办
前端·javascript·vue.js·thinkphp6·crmeb
软件技术NINI21 小时前
基于SpringBoot和Vue的项目评审系统
javascript·vue.js·spring boot·后端·spring·毕业设计·毕设