代码之家  ›  专栏  ›  技术社区  ›  Sasha Kos

如何在React管理框架中重置过滤器值?

  •  4
  • Sasha Kos  · 技术社区  · 7 年前

    我有一个过滤器组件:

    export const PostsFilter = (props) => (
      <Filter {...props}>
        <TextInput label='Post ID' source='id' alwaysOn />
        <TextInput label='User ID' source='user_id' alwaysOn />
      </Filter>
    );
    

    我需要添加一个重置按钮来清除输入值。我知道应该通过将smth发送到redux来完成in。也许有人已经解决了这个问题?谢谢!

    2 回复  |  直到 6 年前
        1
  •  2
  •   Alejandro    6 年前

    有一个 setFilters 在你的过滤器组件中,你可以使用它:

    export const PostsFilter = (props) => (
      <div>
        <Filter {...props}>
          <TextInput label='Post ID' source='id' alwaysOn />
          <TextInput label='User ID' source='user_id' alwaysOn />
        </Filter>
        <Button onClick={() => props.setFilters({
              id: '',
              user_id: ''
         })}>Clear fields</Button>
      <div>
    );
    
        2
  •  0
  •   mewc    7 年前

    听起来您想清除textInput中的值,而不需要使用redux查看您提供给我们的值。

    使用的方法之一是通过 onChange() 函数-这可能是您也在调用操作以访问后端或更改道具中的文章的状态的地方。

    要重置,您可以使用另一个按钮 onClick() 打电话给 handleReset(inputId) 你可以打电话给 setState({filterUser: 'testUser123'}) 那就按你的要求去做。

    虽然这取决于你想如何处理所有事情,但是没有足够的信息来了解你是如何做到的,所以我只是在猜测人们做事的一种常见方式。