Reactjs 过滤器功能在react/redux中不工作

Reactjs 过滤器功能在react/redux中不工作,reactjs,redux,Reactjs,Redux,我是react/redux的新手,我尝试做一个应用程序来管理我的句子。 我尝试过滤我的句子,它确实正确,但当我从输入字段中删除一些单词时,我的状态仍然是过滤的 这就是行动 export const filterWord = (e) => { return { type: 'FILTER_WORD', e } } 这是减速器: case 'FILTER_WORD': return state.filter((sentence) => sente

我是react/redux的新手,我尝试做一个应用程序来管理我的句子。 我尝试过滤我的句子,它确实正确,但当我从输入字段中删除一些单词时,我的状态仍然是过滤的

这就是行动

export const filterWord = (e) => {
   return {
     type: 'FILTER_WORD',
     e
   }
}
这是减速器:

case 'FILTER_WORD':
    return state.filter((sentence) => sentence.word.includes(action.e.target.value));

希望有人能给我一个建议

处理过滤的最佳方法不是根据过滤词过滤减速器状态,而是在选择器中进行过滤

如果在减速器中过滤状态,下次更改或删除过滤器时,将不会出现原始状态,而是出现重复状态

您可以将过滤器字存储在reducer中

export const filterWord = (e) => {
   return {
     type: 'FILTER_WORD',
     word: e.target.value,
   }
}


现在,在MapStateTops组件中,您可以过滤用户组件的结果

const mapStateToProps = (state) => {
   return {
       data: state.data.filter((sentence) => sentence.word.includes(state.filterWord));
   }
}

处理过滤的最佳方法不是根据过滤词过滤减速器状态,而是在选择器中进行过滤

如果在减速器中过滤状态,下次更改或删除过滤器时,将不会出现原始状态,而是出现重复状态

您可以将过滤器字存储在reducer中

export const filterWord = (e) => {
   return {
     type: 'FILTER_WORD',
     word: e.target.value,
   }
}


现在,在MapStateTops组件中,您可以过滤用户组件的结果

const mapStateToProps = (state) => {
   return {
       data: state.data.filter((sentence) => sentence.word.includes(state.filterWord));
   }
}

你的状态保持过滤是什么意思?@ShubhamKhatri这是我的数据的外观:const data=[{id:0,word:'test',author:'test',pages:1},{id:1,word:'test1',author:'unknown',pages:1}]如果您不希望在删除一个单词并返回筛选前可见的状态后对该状态进行筛选,则应删除筛选。为了做到这一点,您应该将以前的状态保存在redux中的某个位置。您需要保留对完整句子列表的引用,并在您的reducer@gergana,Jinguo Thanks你的状态保持过滤是什么意思?@ShubhamKhatri我的数据是这样的:const data=[{id:0,word:'test',author:'test',pages:1},{id:1,word:'test1',author:'unknown',pages:1}]如果不希望在删除单词后过滤状态并返回过滤前可见的状态,则应删除过滤。为此,应将以前的状态保存在redux中的某个位置。您需要保留对完整句子列表的引用,并在reducer@gergana,经国我很高兴能帮上忙