Javascript 数组搜索返回一个新的空数组
下面是我的带有搜索输入hoos的代码,我无法确定它为什么不起作用Javascript 数组搜索返回一个新的空数组,javascript,reactjs,react-native,Javascript,Reactjs,React Native,下面是我的带有搜索输入hoos的代码,我无法确定它为什么不起作用 import Herois from './json/videos.json' function App() { const [valueInput, setValueInput] = useState('') const [newArray, setNewArray] = useState([]) useEffect(() => { const results = Herois.filter((i)
import Herois from './json/videos.json'
function App() {
const [valueInput, setValueInput] = useState('')
const [newArray, setNewArray] = useState([])
useEffect(() => {
const results = Herois.filter((i) => {
i.title.toLowerCase().includes(valueInput.toLowerCase())
})
setNewArray(results)
console.log(newArray)
}, [valueInput])
}
总是变成一个空数组
const results = Herois.filter((i) => {
// you have to return the something here
return i.title.toLowerCase().includes(valueInput.toLowerCase())
})
或
console.log(results)ta mostrando algo?@matmahnke-在下面建议的更新之后,如果我在结果中给出console.log,则返回一个值;如果我在newArray中给出console.log,则返回emptyReturns一个值,如果我在结果中给出console.log,如果我在newArray中给console.log,它将返回空
setNewArray
是一个异步函数,这意味着它在完成执行之前不会阻止下一段代码(console.log(newArray)
)。如果要测试newArray是否为空,请使用以下命令:setTimeout(()=>{console.log(newArray)},1000)
const results = Herois.filter((i) => (i.title.toLowerCase().includes(valueInput.toLowerCase())
))