【问题标题】:Getting idea of how search filtering in React.js works了解 React.js 中的搜索过滤是如何工作的
【发布时间】:2017-10-10 12:40:10
【问题描述】:

我是新来的反应。我昨天开始学习,我正在尝试使用 pokemon API (https://pokeapi.co/) 制作一个简单的网络应用程序,用户可以在其中按名称搜索 pokemons 并按类型过滤。

对于搜索,我的想法是在用户在搜索框中输入查询时过滤口袋妖怪数据数组。我不明白的是,反应的生命周期。

在我的搜索框中输入内容后,我似乎必须立即更新过滤后的数组。这与 React 组件的生命周期有什么关系?换句话说,这个更新必须在生命周期的哪个部分?

我不是要代码,但我想了解如何开始这个编程。

谢谢

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

要了解的最重要的事情是组件的状态生命周期 - 一旦您真正了解它的工作原理,您就会发现它非常适合您想要实现的目标。 每次修改组件状态时(例如,每次将字符输入到正在搜索的口袋妖怪的输入字段时),React 都会调用该组件的 render(){} 方法。新修改的状态对象将可用于渲染函数内部的任何函数(在您的情况下为过滤函数)或方法等,并且该概念将允许您根据与这些状态对象一起操作的任何函数返回 JSX 组件作为参数。

所以基本上我想象这样的事情: 1.如果该状态的过滤器没有字符串,则加载所有pokemon,否则用该字符串过滤pokemon列表,并返回过滤后的列表。 2. 在输入字段中输入内容时,使用该值更新状态中的过滤器。 3.调用render方法,循环往复。

【讨论】:

  • 非常感谢!我仍然不是 100% 清楚,但我想我明白了。所以,当我尝试从 API 中检索口袋妖怪列表时,我实际上是否必须遍历 API 并将它们放入一个数组中,或者我们是否必须在每次搜索关键字时向 API 请求更改的数据盒子变了?
  • react 生命周期的另一部分,也是我最常用于从外部源提取数据的部分,是 componentWillMount(){} 函数。这将是组件正式挂载之前调用的第一件事,并允许您在其中设置状态。这样,您可以从 API 中提取您需要的任何内容并将其存储在状态对象中。我认为限制对外部源的调用通常是一个好主意,因此如果您进行一次 api 调用,将其作为数组存储在状态中,然后在需要时再引用它,您将处于良好状态。
  • 那么,这听起来对您有效吗? : 1) 从 componentWillMount() 中的 API 获取数据,2) 创建一个数组,在其中存储所有 pokemon 的信息,3) 在 render() 中渲染这些数据,并在给定数据的情况下使用一些排序和过滤选项。还是不太清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多