You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中array.map渲染的按钮点击时无法向函数传值如何解决?

问题根因及修复方案

你遇到的按钮点击无响应、参数未传递的核心问题是React事件名拼写错误,附带还有几处影响功能的逻辑问题,逐一修复如下:

1. 核心错误:事件名未使用驼峰命名

React 中所有事件绑定都要使用驼峰格式,你写的原生HTML全小写onclickReact无法识别,所以点击事件完全没有触发,自然不会调用函数传参。
把两个Button的onclick都改成onClick即可:

// 改前
<Button variant="danger" onclick={()=>{deletemoviereview(val.movie_name)}}>Delete</Button>
<Button onclick={()=> {updatereview(val.movie_name)}}>Update</Button>

// 改后
<Button variant="danger" onClick={()=>{deletemoviereview(val.movie_name)}}>Delete</Button>
<Button onClick={()=> {updatereview(val.movie_name)}}>Update</Button>

2. 其他影响功能的问题修复

(1)useEffect无限请求问题

你当前的useEffect没有加依赖数组,每次组件渲染都会重新执行,导致无限调用get接口,添加空依赖数组限定只在挂载时执行一次:

useEffect(()=>{
  Axios.get('http://localhost:3001/api/get').then((response)=>{
    setmovielist(response.data); 
  })
}, []) // 加空数组作为依赖
(2)提交评论时列表更新错误

当前submitReview里更新movielist的写法会把旧列表整个嵌套进新数组的第一个元素,要用展开运算符处理旧数组,同时要和后端返回的字段名对齐:

// 改前
setmovielist([movielist,{movieName:movieName,movieReview:review}]);
// 改后
setmovielist([...movielist,{movie_name:movieName,moview_review:review}]);
(3)字段名不一致问题

你后端返回的字段是movie_name、moview_review,但提交更新、插入接口时传的是movieName、movieReview,需要和后端统一字段名,避免渲染、更新时取不到值。


内容的提问来源于stack exchange,提问作者SAJID MASOOD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:27:00