Verwenden Sie React, um Filterfunktionen zu schreiben
P粉596191963
P粉596191963 2023-08-16 20:02:19
0
1
545
<p>Ich möchte eine Filterfunktion erstellen, die ausgelöst wird, wenn ein Eingabewertereignis in „react useState“ empfangen wird, aber wenn ich mit der Eingabe beginne, sehe ich nichts. Dies ist meine Suchkomponente</p> <pre class="brush:php;toolbar:false;">Exportfunktion Search({categories, onSearch}){ const [searchText, setSearchText] = useState(''); const filterCategories = () => const filteredCategories = kategorien.filter(category => Category.name.toLowerCase().includes(searchText.toLowerCase()) ); onSearch(filteredCategories); }; const handleInputChange = event => setSearchText(event.target.value); filterCategories(); }; zurückkehren ( <div className="flex items-center"> <form className='flex space-x-1' > <Eingabe type="text" className="block w-full px-4 py-2 text-purple-700 bg-white border abgerundet-voll focus:border-purple-400 focus:ring-purple-300 focus:outline-none focus:ring focus:ring -Opazität-40" placeholder="Suchen..." value={searchText} onChange={handleInputChange} /> </form> </div> ) }</pre> <p>Dann verwenden Sie hier</p> <pre class="brush:php;toolbar:false;">const Layout = ({ Kategorien, Kinder }) => const [filteredCategories, setFilteredCategories] = useState(categories); const handleSearch = (filteredCategories) => setFilteredCategories(filteredCategories); }; zurückkehren ( <div> {/* ... */} <Suchkategorien={categories} onSearch={handleSearch} /> {/* ... */} {Kinder} </div> ); }; Standardlayout exportieren;</pre> <p>Dann wird diese Komponente in der Home-Komponente verwendet</p> <pre class="brush:php;toolbar:false;">Standardfunktion exportieren Home({ Beiträge, Kategorien }) { zurückkehren ( <Layout-Kategorien={categories}> <div className="mt-20"> <main className="flex flex-col justify-center items-center h-screen pt-10 pb-30"> {/* Beitrag rendern */} </main> </div> </Layout> ); }</pre> <p>Muss ich irgendetwas tun, damit es funktioniert? </p>
P粉596191963
P粉596191963

Antworte allen(1)
P粉431220279

在Layout组件中,你正在将categories的值传递给你的Search组件,你可能想要传递filteredCategories

const Layout = ({ categories, children }) => {
  const [filteredCategories, setFilteredCategories] = useState(categories);

  const handleSearch = (filteredCategories) => {
    setFilteredCategories(filteredCategories);
  };

  return (
    <div>
      {/* ... */}
      <Search
        categories={filteredCategories} // 这里
        onSearch={handleSearch}
      />
      {/* ... */}
      {children}
    </div>
  );
};

export default Layout;

(filteredCategories没有被使用,这让你感觉什么都没有发生)

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!