[英]how to setup multiple filter in reactjs
我閱讀了stackoverflow中的質量檢查內容,但沒有介紹如何同時設置受控的單人和多人,
我有一個多重過濾器,但是有時候當我們進入反應形式時,只能選擇一個或多個
handleChange = (e) => {
const target = e.target;
const value = target.value;
const name = target.name;
this.setState({[name]:value})
this.props.onChange({[name]:value})
}
..................
carPrice:
<input
name="carPrice"
type="text"
value={this.state.carPrice}
onChange={this.handleChange}/>
price_category :
<select
name="price_category"
value={this.state.price_category}
onChange={this.handleChange} >
<option >Select</option>
<option value="low">Low</option>
<option value="medium">Medium</option>
<option value="high">High</option>
</select>
這是表格,用戶可以同時選擇一個或多個過濾器。 用戶輸入時的輸出看起來像
{price_category: "low"}
如果給車價
{ carPrice: "20000"}
在這里過濾
在這里,我們過濾狀態,
f = (filterparams)=>{
//filterparams ---> {price_category: "low"}
let filtercars = this.state.cars // car array here
filtercars = filtercars.filter
(
car=> {return car.carPrice <= filterparams.carPrice ||
car.price_category === filterparams.price_category }
)
this.setState({
filtercars
})
}
問題
編輯
render() {
return (
<div>
<CarResult cars={this.state.filtercars} onChange={this.f}/>
</div>
)
}
這是CodeSandBox,用於在反應列表中的項目上設置多個過濾器。 創建回答后,這個問題的討論 。
類似問題的提示
list/array
和filter variables
保留在父組件中 render(){}
的列表,不要setState
只是作為prop傳遞給子組件 this.HandleChange
作為道具 您能否更具體地回答您的問題?
根據我的理解,就像您對它進行編程一樣,它可以正常工作。 如果您已經將類別狀態設置為高,並且僅將價格更改為1000,則其應顯示類別高以下的所有汽車低於1000。
如果您不希望這種情況發生,則每次更改價格時都必須重置類別狀態
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.