构建HackerJobs — React Native日记(11月4日)

是的,我仍在努力。 我没有很多时间来处理它,因为我今天还有其他事情要做,但有几件事。

NavigatorIOS模式

首先,我决定使用NavigatorIOS组件将其他两个视图组件(书签和设置)包装在HackerJobs中。 我这样做是因为大多数人(包括我自己)都习惯于在屏幕顶部看到标题栏。

现在,我没有更多可用于导航器的屏幕,所以这只是出于美学目的,但确实为我提供了将来迭代的空间。 这是一个小的更改,花费了几分钟。 这是用于SettingsView组件的。

  <TabBarIOS.Item 
  systemIcon ='更多' 
  onPress = {()=> this.setState({selectedTab:“ Settings”})} 
  selected = {this.state ['selectedTab'] ==“设置”}> 
  <NavigatorIOS 
  initialRoute = {{ 
 组件:SettingsView, 
 标题:“设置” 
  }} 
 样式= {{flex:1}} 
  /> 
   

不知道为什么格式化在该代码块上全都搞乱了,但是您去了。

页面末尾刷新

滚动到结束刷新功能不起作用的原因是,我没有使用从API返回的新故事正确地更新setState函数。 通过setState函数之前的简单concat修复了此问题。

另外,刷新的延迟很慢,因此我要么需要提早设置阈值,要么需要添加某种“ Wait for it…”视觉组件,以便人们知道它正在工作而不仅仅是冻结。 即使在功能测试期间,我也认为它已损坏。

设定检视

我对所有应用程序以及整个人生的最终目标是想出一种激活暗模式的方法。 现在我不太确定该怎么做。 恐怕这将要求我以“暗模式”样式重新设置所有应用的外观,从而导致它们翻转。 听起来令人讨厌。

但是,在我决定找出最佳解决方案之前,我在“设置”页面中找到了它。

当我弄清楚如何正确进行设置时,我想做“随机播放作业”。 现在,所有从API发出的儿童ID似乎都处于相同的顺序。 使用Lodash Shuffle功能,我可以在整个过程中增加一些随机性。

我能够实现的一件事是“重置作业”和“重置所有”按钮。 这是一个相对简单的更改,需要我在AsyncStorage中调用一些API。

  
   AsyncStorage.clear(()=> AlertIOS.alert(“全部消失”))} /> 

我喜欢回调功能,该功能使我能够通过对AlertIOS组件的调用,让我告诉人们作业已删除或所有设置都已删除。

但这是一个新问题。 您可以删除所有作业,获取警报,然后导航到SavedJobs组件,然后查看该作业仍在那儿。 这是因为我们没有使用Redux或其他状态管理库,并且组件内部一直在跟踪“已保存的作业”。 有人保存了一个作业,然后AsyncStorage更新了,但与此相关的组件却没有更新。 我正在考虑解决此问题的方法,它可能涉及某种回调。

新功能创意

现在,我们正与原始的HackerJobs达到功能平价,但我想考虑一些原始的东西。 我一直想对作业本身进行一些文本解析,或者能够注入一些CSS来突出显示您希望在解析作业时看到的自定义术语。 一旦完成所有其他设置,就可以开始工作了。