Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs 使用redux单击应用和重置多个过滤器_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs 使用redux单击应用和重置多个过滤器

Reactjs 使用redux单击应用和重置多个过滤器,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我需要做的产品,将在点击过滤列表。但我就是搞不懂如何在反应中做到这一点。主要是: 在哪里做过滤功能 如何合并数据并将其传递给reducer 如何用一个按钮触发所有这些 我相信对于一个有经验的开发人员来说,这是一个非常琐碎的例子 到目前为止包含我的代码的存储库: 现在我有了一个输出json的组件 和包含所有过滤器的组件。遗憾的是,我无法理解如何通过我的行动和减速器来实现:( 这是我的过滤器 const-mapStateToProps=(state)=>{ 返回{ 过滤器:state.filter

我需要做的产品,将在点击过滤列表。但我就是搞不懂如何在反应中做到这一点。主要是:

  • 在哪里做过滤功能
  • 如何合并数据并将其传递给reducer
  • 如何用一个按钮触发所有这些
  • 我相信对于一个有经验的开发人员来说,这是一个非常琐碎的例子

    到目前为止包含我的代码的存储库:

    现在我有了一个输出json的组件 和包含所有过滤器的组件。遗憾的是,我无法理解如何通过我的行动和减速器来实现:(

    这是我的过滤器

    const-mapStateToProps=(state)=>{
    返回{
    过滤器:state.filter,
    }
    }
    常量mapDispatchToProps={filtersApply,filtersReset}
    函数筛选器({Filter,filtersApply,filtersReset}){
    console.log(过滤器)
    常量类型选项=[
    {值:“公寓”,标签:“住宅”,
    {值:'hotel',标签:'Сцц'},
    ]
    常数countriesOptions=[
    {值:'greece',标签:'Гццц'},
    {值:'俄语',标签:'П砦С砦'},
    {值:'ukraine',标签:'Уааааа'},
    ]
    const[types,setTypes]=useState([])
    const[countries,setCountries]=useState([])
    const handleOnChangeCountries=(selectedOption)=>{
    设置国家/地区(选择选项)
    log(`Option selected:`,selectedOption)
    }
    const handleOnChangeTypes=(selectedOption)=>{
    设置类型(选择选项)
    log(`Option selected:`,selectedOption)
    }
    返回(
    Тип
    Количество звезд
    1 звезда
    2 звезды
    3 звезды
    4 звезды
    5 звезд
    {
    filtersApply({name:'countryFilter',值:countries})
    }}
    >
    Применить фильтр
    Очистить фильтр
    )
    }
    
    导出默认连接(MapStateTrops、mapDispatchToProps)(筛选器)
    我广泛使用的模式之一(不仅仅是redux)是将列表保存在两个状态变量中。第一个是由某个标识符映射的所有实体的哈希映射,另一个是标识符列表。例如,您有一个酒店列表。我会这样做:

    let initialState={
    酒店:{
    1: {
    id:1,
    名称:“玛丽娜酒店”,
    国家:“Гцццц”,
    地址:“Фааааааааааааааа,
    星星:4,
    类型:“ааа”,
    说明:
    "Этот 4-звездочный отель расположен в центре города. На его территории есть бассейн с террасой и сауна. Из номеров открывается вид на море или на средневековый город.",
    服务:[
    "Пляж",
    "Кондиционер",
    "Открытый бассейн",
    "Бесплатная парковка",
    “无线网络”,
    "Вид на море",
    "Бесплатный завтрак",
    ],
    最低价格:2789.0,
    货币:“卢布”,
    评级:4.5,
    审查金额:18,
    最后一次审查:
    "Отличное расположение. Вкусный завтрак. Отдыхали с детьми - все понравилось.",
    },
    2: {
    id:2,
    名称:“蒙德里安套房酒店”,
    国家:“Гцццц”,
    地址:“Фааааааааааааааа,
    星星:5,
    类型:“АПаааааааааафф”,
    说明:
    "Из окон открывается вид на город.К услугам гостей номера-студио с балконом и чайником в 2,7 км от пляжа.",
    服务:[
    "Пляж",
    "Кондиционер",
    "Открытый бассейн",
    "Платная парковка",
    “无线网络”,
    "Вид на море",
    ],
    最低价格:3245.2,
    货币:“卢布”,
    评级:5,
    审查金额:4,
    最后一次审查:
    "Потрясающее место, в номере есть все необходимое. Красивый вид на море.",
    },
    3: {
    名称:“阳光公寓”,
    国家:“Гцццц”,
    地址:“Пцццццц,Пццццц”,
    星星:2,
    类型:“АПаааааааааааафф,
    说明:
    "Все номера и апартаменты оборудованы кондиционером и телевизором с плоским экраном. Также в распоряжении гостей тостер и чайник.",
    服务:[
    "Пляж",
    "Кондиционер",
    "Бесплатная парковка",
    “无线网络”,
    ],
    最低价格:1153.0,
    货币:“卢布”,
    评级:2.4,
    审查金额:36,
    最后一次审查:
    "Бассейн очень маленький. Кормят невкусно. Больше не поедем.",
    },
    4: {
    名称:“超级全包酒店”,
    国家:“Гцццц”,
    地址:“Пцццццц,Пцццццццц”,
    星星:4,
    类型:“ааа”,
    说明:
    "Все но