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

React/Next.js中点击博客后如何获取slug值?

解决React/Next.js点击博客标题获取slug返回undefined的问题

你当前代码里用e.target.value获取slug会得到undefined,核心原因是<h4>标签本身不存在value属性——这个属性仅针对表单类元素(如input、select)生效。

方法一:直接传递slug作为函数参数

这是最直接的实现方式,把post对象的slug直接传给点击函数:

<h4 onClick={() => mainFunction(post.slug)}>{post.title}</h4>  

const mainFunction = (slug) => {
  alert('value is ' + slug);
};

方法二:利用HTML data属性存储slug

将slug存入标签的自定义data属性,再通过事件对象读取:

<h4 data-slug={post.slug} onClick={mainFunction}>{post.title}</h4>  

const mainFunction = (e) => {
  const slug = e.target.dataset.slug;
  alert('value is ' + slug);
};

补充提示

如果<h4>内部嵌套了其他元素(比如<span>),e.target可能会指向子元素而非h4本身,此时可以用e.currentTarget替代——它始终指向绑定事件的那个h4元素:

const mainFunction = (e) => {
  const slug = e.currentTarget.dataset.slug;
  alert('value is ' + slug);
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:00:56