Javascript 如何从react native中的数组中筛选元素

Javascript 如何从react native中的数组中筛选元素,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我创建了一个函数,用于在按下删除图标但删除不起作用时从数组中删除项目。下面是一段代码,该函数用于从数组中筛选元素,但它抛出的未定义不是对象(评估alerts.filter) const[alerts,setAlerts]=useState([]) 功能项删除(项){ setAlerts(({alerts})=>({ newalerts:alerts.filter(i=>i.key!==item.key) })) } 返回( { 警报和警报.map((项目,i)=>{ 返回( {item.Curr

我创建了一个函数,用于在按下删除图标但删除不起作用时从数组中删除项目。下面是一段代码,该函数用于从数组中筛选元素,但它抛出的
未定义不是对象(评估alerts.filter)

const[alerts,setAlerts]=useState([])
功能项删除(项){
setAlerts(({alerts})=>({
newalerts:alerts.filter(i=>i.key!==item.key)
}))
}
返回(
{
警报和警报.map((项目,i)=>{
返回(
{item.CurrencyPair_Name}
itemRemove(项目)}
大小={24}
color=“黑色”
style={{位置:“绝对”,右:3}}/>
)
}
)
}
)
你能试试这个吗

  function itemRemove(item) {
        setAlerts(prev => prev.filter(i => i.key !== item.key))
  }
您已将警报声明为数组,而不是对象。

请尝试这种方式

function itemRemove(index) {
    const newAlerts = [...alerts];
    newAlerts.splice(index, 1);
    setAlerts(newAlerts);
}


return (
   ........
   onPress={() =>itemRemove(i)}  // send index here               
   ......      
)
function itemRemove(index) {
    const newAlerts = [...alerts];
    newAlerts.splice(index, 1);
    setAlerts(newAlerts);
}


return (
   ........
   onPress={() =>itemRemove(i)}  // send index here               
   ......      
)
const [alerts, setAlerts] = useState([])

function itemRemove(item) {
    const newAlerts = alerts.filter(i => i.key !== item.key);

    setAlerts(newAlerts);
}