全程记录—与ReactNative的爱恨纠葛

定期更新!有好的解决方案 或者  知道问题原因的 一定要告诉我啊~
Ps:无数次克制自己说函数 不能说 方法 
థ౪థ  谁能懂我内心的痛   但是我已经渐渐开始喜欢组件这个东西了 <(▰˘◡˘▰)>骄傲脸

12、页面跳转问题,正在研究 就像我昨天觉得textInput深不可测一样。
 
11、在函数内用 setInterval时遇到调用函数调不到的问题。
    在写 
setInterval时顺手用了es5的语法,即 setTimeout(function(){调用其它函数 },1000),这样写竟然会导致内部的函数无法调用,直接调用,this.、类名.都不好用。最后更换写法为 setTimeout(()=>{调用其它函数 },1000)就可以了。 ┑( ̄Д  ̄)┍虽说箭头函数有bind(this)的效果,但是没道理这样啊。

10、使用 setInterval或者 setTimeout调用自身函数问题。
    我是使用了
setInterval 制作了一个页面倒计时,但是,在实际应用时,第二次重复调用自身时,传入值就开始混乱。跟了代码,走向太深,放弃了。解决方案:采用了 clearInterval ( timer )来停止它的调用。

9、json文件
        json文件内不能存正则表达式!!我很不开心!!

8、跨组件 / 组件外
        在这种情况下,组件的props及state都会获取不到。一个未exports的类,需要将内部方法static,才能被同js中其它函数调用。

7、神奇的state
        每个组件都有两个数据来控制,一个是props,另一个就是state。props在父组件中指定,一旦指定在生命周期内不会改变。而state则存放需要改变的数据。setState后会刷新组件的页面显示。

6、TextInput取值问题&属性赋值问题
 
     TextInput暂时只有一种取值方式,使用输入框自带事件(官网示例:使用 onChangeText ),在事件触发时获取到输入值,通过setState(),将值赋到state中,需要注意的是在组件中需要先使用构造函数给state赋上初始值。否则就会一直报错。其中value属性只关乎页面显示。这种时候一定要摒弃DOM的思想,RN是数据驱动框架,一切操作都会归结到Model上。
    ·属性赋值问题,一看是困扰我一段时间,属性只能赋值字符串,或用{}包起来的变量,但是文档上明明白白写的属性类型number,后来才试验到,数值型的数据也需要使用{}包裹起来。

5、 style的渲染时间
     组件的封装,在构造函数中赋的值无法,在StyleSheet.create()中,获取不到。
     所以推测style的渲染时间早于构造函数。

4、onPress事件打开页面后立马调用问题  (。・`ω´・)这个问题困扰了我很久!拍桌子!
    使用官网示例,Button组件,在配置了onPress事件后,打开页面就会调用。原因不详。
    暂时解决方案:onPress={()=>调用的方法},实际上是写了一个无名函数在函数内进行调用。
    试验了无数次,终于成功,痛哭!

3、 image组件
    使用require(相对路径)时,相对路径必须是静态常量,变量赋值无法require到。
    uri:(绝对路径)时,使用网络路径或者本地路径

2、npm服务启动后,莫名中断。
    a.端口号冲突:杀掉进程,更换端口号重新启动。
    b. EPERM:operation not permitted :目前没找到具体错误原因,暂时解决方案,打开项目中  node_modules/react-native/local-cli/server/server.js 找到  process.on('uncaughtException', error => { 这个方法,把最后一句  process.exit(11); 注释掉。

1、项目启动(Android)
    a.使用Android studio 或者在cmd中项目目录下运行react-native run-android
        不过后者可能会启动半个小时。
        *Q:Android Studio 启动问题 :找不到Android SDK
          A: 修改build.gradle,去掉对SDK的限制
    b.在cmd中项目目录下运行 npm start {--port 端口号} 或者 react-native start 启动服务

你可能感兴趣的:(全程记录—与ReactNative的爱恨纠葛)