在react-redux中构建搜索过滤器可以通过以下步骤实现:
以下是一个示例代码:
// 1. 安装必要的依赖
// npm install react react-redux redux
import React from 'react';
import { createStore } from 'redux';
import { Provider, connect } from 'react-redux';
// 2. 创建Redux store
const initialState = {
filter: '',
};
const reducer = (state = initialState, action) => {
switch (action.type) {
case 'SET_FILTER':
return {
...state,
filter: action.payload,
};
default:
return state;
}
};
const store = createStore(reducer);
// 3. 定义action类型
const SET_FILTER = 'SET_FILTER';
// 4. 创建action创建函数
const setFilter = (filter) => ({
type: SET_FILTER,
payload: filter,
});
// 6. 创建容器组件
const FilterContainer = ({ filter, setFilter }) => {
const handleFilterChange = (event) => {
setFilter(event.target.value);
};
return (
<input
type="text"
value={filter}
onChange={handleFilterChange}
placeholder="Search..."
/>
);
};
const mapStateToProps = (state) => ({
filter: state.filter,
});
const mapDispatchToProps = {
setFilter,
};
const ConnectedFilterContainer = connect(
mapStateToProps,
mapDispatchToProps
)(FilterContainer);
// 7. 创建展示组件
const ItemList = ({ items, filter }) => {
const filteredItems = items.filter((item) =>
item.toLowerCase().includes(filter.toLowerCase())
);
return (
<ul>
{filteredItems.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
);
};
const mapStateToProps = (state) => ({
filter: state.filter,
items: ['Apple', 'Banana', 'Orange', 'Mango'],
});
const ConnectedItemList = connect(mapStateToProps)(ItemList);
// 8. 在应用程序中使用
const App = () => (
<Provider store={store}>
<div>
<ConnectedFilterContainer />
<ConnectedItemList />
</div>
</Provider>
);
export default App;
这个例子中,我们创建了一个搜索过滤器,用户可以在输入框中输入关键字,然后根据关键字过滤显示的项目列表。用户输入的关键字通过Redux store进行管理,容器组件通过connect函数连接Redux store和React组件,展示组件根据过滤器的状态显示相应的内容。
在这个例子中,我们没有提及具体的腾讯云产品,因为搜索过滤器是一个通用的功能,不依赖于特定的云计算产品。
领取专属 10元无门槛券
手把手带您无忧上云