function App () { const [animals] = React.useState([ 'dog', 'cat', 'mouse', 'elephant', 'wolf', 'peacock', 'fish', 'dragon', 'ant', 'dinosaur' ]) const [filter, setFilter] = React.useState('') const filteredAnimals = React.useMemo(() => { const result = [] animals.forEach(animal => { if (animal.includes(filter)) { result.push(animal) } }) return result }, [animals, filter]) return ( <div> <FilterForm value={filter} onChange={setFilter} /> <br /> Filtered animals: {filteredAnimals.join(', ')} </div> )}function FilterForm ({ value, onChange }) { const handleChange = (event) => { onChange(event.target.value) } return ( <form> <input type="text" value={value} onChange={handleChange} placeholder="Filtered value" />