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

ReactJS中如何实现Select onChange时跳转至对应值链接?

修正你的React选择菜单跳转逻辑

我帮你找出代码里的几个问题,咱们一步步调整:

问题1:错误的取值方式

你在onChange里用this.value是拿不到选中值的——因为箭头函数里的this指向的是你的React组件实例,不是select这个DOM元素。正确的做法是通过事件对象e获取选中值:e.target.value。

问题2:option的value属性错误包裹

你写了value="{page.slug}",这会把字符串"{page.slug}"当作选项的值(而不是page.slug的实际内容),应该去掉引号,直接用JSX表达式传递:value={page.slug}。

修正后的完整代码

render() {
  return (
    <select onChange={(e) => {
      const selectedValue = e.target.value;
      if (selectedValue) {
        window.location.href = selectedValue;
      }
    }}>
      <option value="">Please select</option>
      {pages.map(({ node: page }) => (
        <option key={page.id} value={page.slug}>{page.title}</option>
      ))}
    </select>
  );
}

额外说明

  • 我把选中值存到变量selectedValue里,让逻辑更清晰,也方便后续调试。
  • 跳转前判断值是否为空,避免用户选“Please select”时触发无效跳转。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:37:34