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

如何在React过滤组件中为过滤项绑定对应外部网站链接?

解决React搜索过滤组件列表项跳转外部网站的问题

你只需要将数组中对应的link字段值绑定到<a>标签的href属性上即可,当前代码里的href是空字符串,所以无法实现跳转。

修改核心代码片段

{filterItems.map((wI) => {
    return <li><a href={wI.link} target="_blank">{wI.title}</a></li>
})}

完整修改后组件代码

import React, { useState } from "react";
import "./SearchBarStyle.css"

const SearchBar = () => {

    const waterInfo = [
        {title: "About Water", link:"https://en.wikipedia.org/wiki/Water"},
        {title: "Water (Molecule)", link: "https://en.wikipedia.org/wiki/Properties_of_water"},
        {title: "Water (Chemistry)", link: "https://pubchem.ncbi.nlm.nih.gov/compound/Water"}
    ]

    const [input, setInput] = useState("")

    const HandleInput = (event) => {
        setInput(event.target.value)
    }

    const DeleteInput = () => {
        setInput("")
    }

    const filterItems = waterInfo.filter((wI) => { 
        return wI.title.includes(input)
    })

    return(
        <div>
            <h2 className="search-anything-header">Search anything about water!</h2>
            <div className="inputs-holder">
                <input type="text" value={input} onChange={HandleInput} placeholder="About Water?" className="searchbar"/>
                <button onClick={DeleteInput} className="delete-button"><b>✖</b></button>

            </div>
            <ul className="results">
                {filterItems.map((wI) => {
                    // 增加key属性避免React警告,同时绑定正确的href值
                    return <li key={wI.link}><a href={wI.link} target="_blank">{wI.title}</a></li>
                })}
            </ul>
            
        </div>
    )
}

export default SearchBar

额外提示

给列表项添加key属性是React的要求,这里用每个项唯一的link值作为key,可以避免渲染时的警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:50:36