快速到React Native —第1周

看,纸牌屋

我对版本的恐惧最终成为事实。 我开始的入门项目(遵循React Native文档)使用了旧版本的Expo和React Native。 因此,我更新了所有内容,并花了60分钟来跟踪问题,现在当我在Atom中工作时,流程不再起作用。 所以我必须手动运行Flow …

并不是说iOS开发从来没有这样的问题,但是我觉得这些事情发生的频率降低了。

道具和状态vs实例let和var

如果我明白这一点,我很确定prop等同于声明为let的实例变量,而state等同于var声明的实例变量。

学习新平台始终是一个挑战。 我可以接任何分支:-)

流程:如果很重要,为什么不使用它

好的,这是我这周的咆哮。

如果Flow被认为是使使用JavaScript编写的代码安全并且是React Native的推荐解决方案的原因,那么为什么它是如此糟糕? 以及为什么它在React Native框架代码上返回错误。 为什么要使其始终如一地工作是一个主要的难题……

如果Flow标记了一些错误,React Native背后的团队至少可以同意不发货。 现在,我有24个错误,这些错误令Flow Flags我无能为力。

因此,当我运行Flow时(手动,请记住,由于某种原因它不再在Atom中运行),我必须仔细检查所有内容,以确保不会在我的代码中弹出新内容。

这很痛苦,并且会导致出现错误,因为我最终变得懒惰并错过了新的错误……

如果“应该”使用Flow,那么为什么RN入门站点上的代码示例未添加Flow装饰?!?!? 我不得不谷歌如何获取该代码以通过流程验证。 当然我学到了一些东西,但是来吧……

通天还是反应? 我应该选择哪个

在教程之后,您最终添加了一些工具和命令,这些工具和命令只是为了到达那里而并非总是完全理解。

是的,这通常意味着在将来的某个时刻,您将最终了解您的实际工作以及原因。

因此,Atom有时表明我有两个“不兼容的程序包”,并带有一条错误消息(确实看起来有人对此进行了思考,这很棒),但我仍然感到困惑。

您告诉我阅读此内容后应该做什么:

language-babel检测到存在不兼容的名为“ react”的Atom软件包。

建议您禁用“ react”或“ language-babel”

原因:

Atom社区软件包“ react”(不要与Facebook React混淆)可以为提供JSX自动缩进功能的atom方法打补丁。

当它检测到JSX范围而不考虑所使用的语法时,它会尝试自动缩进由language-babel突出显示的JSX。

由于language-babel还尝试使用标准atom API进行自动缩进,因此会造成潜在的冲突。

那么我应该踢哪一个呢?

这让我想起了Windows vs Apple。 Windows提供所有选项,Apple会为您预选。 我更喜欢Apple是有原因的,我通常不想强调所有选项。

所以问题仍然存在,我应该保留哪一个?

Flex与自动版式

入门文档的第一个有趣部分是创建一些UI。

立刻将您带入FlexBox布局。 FlexBox布局是一种新的Web布局方法,只是只有最新的浏览器才能很好地支持它,因此它尚未在Web上变得很大。

另一方面,React Native不依赖于浏览器,因此这似乎是一个完美的选择。

我花了一些时间来理解这些概念,我认为我现在很好。

我的结论是,自动布局似乎更强大。

我在FlexBox中尚未看到的一项功能是可以为维度指定优先级。

除了极少数的宽度和高度以外,我还没有看到最大值和最小值的概念。

归根结底,我认为FlexBox可以满足我的需求。 只是一种思考学习的方式。