问题描述
我的状态是这样的。
const [state,setState] = useState({
Filters: [
{
bpm: 0,price: 0,genreTypeId: 0,},],});
为了让我正确过滤,我需要将我的有效负载以过滤器所在的相同状态发送到 ajax,一个数组对象,每个过滤器都是一个对象,每个属性的值不能超过一个。
如何设置我的 bpmHandler 以便它在 bpm 为 0 或 null 时首先设置状态,然后对于每个额外的 bpm 值,它在过滤器中创建另一个对象?
我尝试过过滤、映射和拼接,但我仍然不确定逻辑本身。
我目前在使用 bpmHandler
const bpmHandler = (e,index) => {
_logger(e);
_logger(state.Filters);
setState((prevstate) => ({
...state,Filters: [
...prevstate.Filters.splice(0,index),{
...state.Filters[index],bpm: e.target.name,price: state.Filters.price,genreTypeId: state.Filters.genreTypeId,...state.Filters.splice(index + 1),}));
我也不反对有一个 bpmList,它只保存 bpm 过滤器中的所有值,然后我的 bpmHandler 可以将它映射到我想要的形状,但不确定这是否比仅设置状态更有效跳跃。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)