第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在自定義表中搜索 - React

在自定義表中搜索 - React

慕碼人2483693 2023-11-02 16:57:57
我正在嘗試制作一個(gè)包含 api 數(shù)據(jù)可搜索的表。我正在路上,但不確定如何進(jìn)一步進(jìn)行。代碼如下所示:const [searchTerm, setSearchTerm] = useState("");    const [searchResults, setSearchResults] = useState([]);        const handleChange = event => {        setSearchTerm(event.target.value);    };    useEffect(() => {        const results = apiData.filter(person =>             person.toLowerCase().includes(searchTerm)        );        setSearchResults(results);    }, [searchTerm]);    const renderPerson = (contact, index) => {        return (            <tr key={index}>                <td>{contact.ID}</td>                <td>{contact.Info.Name}</td>                <td>{contact.InfoID}</td>                <td>{contact.Info.DefaultEmail.EmailAddress}</td>                <td>{contact.Info.DefaultPhone.Number}</td>                <td>{contact.Info.InvoiceAddress.AddressLine1}</td>            </tr>        )    } return (        <Fragment>            <input type="text" value={searchTerm} onChange={handleChange} placeholder="S?k.."></input>            <table id="myTable">                <thead>                    <tr className="header">                        <th>ID</th>                        <th>Navn</th>                        <th>Info Id</th>                        <th>E-post</th>                        <th>Telefon</th>                        <th>Adresse</th>                    </tr>                </thead>                <tbody>                    {apiData.map(renderPerson)}                </tbody>            </table>        </Fragment>    )https://dev.to/asimdahall/simple-search-form-in-react-using-hooks-42pg 我已經(jīng)遵循了本指南,但是由于我有 renderPerson 函數(shù),我有點(diǎn)不確定如何處理這。問(wèn)題:有什么方法可以讓它發(fā)揮作用,還是我的方法不對(duì)?我知道我需要以某種方式將 searchResult 放入 tbody 中,但隨后表將不會(huì)被填充。
查看完整描述

2 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

更改apiData為searchResults渲染時(shí)


<tbody>

   {searchResults.map(renderPerson)}

</tbody>

更改您的過(guò)濾方式結(jié)果(已更新)


const results = apiData.filter(person => 

   person.Info.Name.toLowerCase().includes(searchTerm)

);


....


const renderPerson = (item, index) => {

        return (

            <tr key={index}>

                <td>{item.ID}</td>

                <td>{item.Info.Name}</td>

                <td>{item.InfoID}</td>

                <td>{item.Info.DefaultEmail.EmailAddress}</td>

                <td>{item.Info.DefaultPhone.Number}</td>

                <td>{item.Info.InvoiceAddress.AddressLine1}</td>

            </tr>

        )

    }


查看完整回答
反對(duì) 回復(fù) 2023-11-02
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

嘗試這個(gè)


export default function () {

 

const [searchTerm, setSearchTerm] = useState("");

const [searchResults, setSearchResults] = useState([]);


const apiData=[

        {

            ID:'1222',

            Info:{

                ID:'1222',

                EmailAddress:'test@test.com',

                Number:'2222222222',

                AddressLine1:'test'

            }

        },

        {

            ID:'2333',

            Info:{

                ID:'2333',

                EmailAddress:'test2@test.com',

                Number:'1111111111',

                AddressLine1:'test2'

            }

        }

    ]

    

    const handleChange = event => {

        setSearchTerm(event.target.value);

        if(event.target.value){

            const results = apiData.filter(person => 

                person.ID.toLowerCase().includes(event.target.value)

            );

            setSearchResults(results);

        }else{

            setSearchResults([]);

        }

        

    };



    const renderPerson = (contact, index) => {

        return (

            <tr key={index}>

                <td>{contact.ID}</td>

                <td>{contact.Info.Name}</td>

                <td>{contact.Info.ID}</td>

                <td>{contact.Info.EmailAddress}</td>

                <td>{contact.Info.Number}</td>

                <td>{contact.Info.AddressLine1}</td>

            </tr>

        )

    }


 return (

        <Fragment>

            <input type="text" value={searchTerm} onChange={handleChange} placeholder="S?k.."></input>

            <table id="myTable">

                <thead>

                    <tr className="header">

                        <th>ID</th>

                        <th>Navn</th>

                        <th>Info Id</th>

                        <th>E-post</th>

                        <th>Telefon</th>

                        <th>Adresse</th>

                    </tr>

                </thead>

                <tbody>

                    {searchResults.map(renderPerson)}

                </tbody>

            </table>

        </Fragment>

    )


 }


查看完整回答
反對(duì) 回復(fù) 2023-11-02
  • 2 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)