Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ReactJS中使用按钮过滤数据_Javascript_Reactjs - Fatal编程技术网

Javascript 在ReactJS中使用按钮过滤数据

Javascript 在ReactJS中使用按钮过滤数据,javascript,reactjs,Javascript,Reactjs,我有一个具有4个属性的状态。最初,它们都将设置为false。但是,当我单击按钮时,特定的一个将变为true,并显示所有其他值。我正在尝试使用过滤方法,但我无法这样做 声明: state = { hospitals: [ { id: 'h1', name: 'Apollo Hospital', city: 'Chennai' }, { id: 'h2', name: 'Fortis Hospital', city: 'New Delhi'}, { id:

我有一个具有4个属性的状态。最初,它们都将设置为false。但是,当我单击按钮时,特定的一个将变为true,并显示所有其他值。我正在尝试使用过滤方法,但我无法这样做

声明:

state = {
    hospitals: [
      { id: 'h1', name: 'Apollo Hospital', city: 'Chennai' },
      { id: 'h2', name: 'Fortis Hospital', city: 'New Delhi'},
      { id: 'h3', name: 'Tata Memorial Hospital', city: 'Mumbai'},
      { id: 'h4', name: 'Lilavati Hospital', city: 'Pune',}
    ],
};

我不能完全肯定我是否正确地掌握了预期的行为。。你是不是想实现一些东西,像这样

const{useState}=React,
{render}=ReactDOM,
rootNode=document.getElementById('root'))
常数数据={
医院:[
{id:'h1',名称:'Apollo Hospital',城市:'Chennai'},
{id:'h2',名称:'Fortis Hospital',城市:'新德里'},
{id:'h3',名称:'塔塔纪念医院',城市:'孟买'},
{id:'h4',名称:'Lilavati医院',城市:'Pune',}
],
}
常量应用=()=>{
const[filters,setFilters]=useState(
Object.assign(
{},
…data.hospitals.map(({city})=>({[city]:false}))
)
),
onFilter=({target:{value}})=>
设置过滤器({
…过滤器,
[值]:!筛选器[值]
})
返回(
{
Object.keys(filters.map)(按钮=>(
))
}
    { data.hospitals.map({id,name,city})=> (!Object.values(filters).some(Boolean)| | filters[city])&&(
  • {name}({city})
  • )) }
) } 渲染( , 根节点 )
.activeButton{
背景颜色:橙色;
颜色:#fff;
}

您在哪里将它们设置为false?