Javascript 数组搜索返回一个新的空数组

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)

下面是我的带有搜索输入hoos的代码,我无法确定它为什么不起作用

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())
 ))