React Native隨筆——警告處理方法(持續更新)


一、警告propTypes was defined as an instance property on commonTabar. Use a static property to define propTypes instead.

警告如下圖:

1、解決方法

原來的如下圖一,修改后的如下圖二。把propTypes放置到class類的外邊,reload后警告就不見了。

2、原因

出現上面問題的原因是,在es6版本中,對一些語法進行了更改,更改的內容中都有以下屬性的修改: 
將propTypes、getDefaultTypes等類屬性移到類外面定義,由於ES6類中只允許定義方法並不允許定義類屬性,所以像原先會在 createClass 中定義的 propTypes 、 getDefaultTypes 、 displayName 還有 contextTypes 等組件屬性都要放到類外面來賦值。

 

二、警告each child in an array or iterator should have a unique ‘key’ prop

警告如下圖:

 

1、解決方法

原來的如下圖一,修改后的如下圖二。圖一中沒有key,圖二在子項添加一個key就好了。

2、 原因

react native循環遍歷時需要一個唯一的key。

下面這段是從知乎看到的:

這個是和react的dom-diff算法相關的。react對dom做遍歷的時候,會根據data-reactid生成虛擬dom樹。如果你沒有手動的添加unique constant key的話,react是無法記錄你的dom操作的。它只會在重新渲染的時候,繼續使用相應dom數組的序數號(就是array[index]這種)來比對dom樹。
 

三、Android安裝APK報錯:Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE

1、解決方法

adb uninstall 包名(例如com.ginger.happy)

2、 原因

原來的包沒有卸載干凈(我的小米總是卸載不干凈,華為就沒有這個問題)

 

四、報錯Undefined is not an object(evaluating ‘_react2.PropTypes.func’)

報錯如下圖:

1、解決方法

把原來的寫法

import React, { Component, PropTypes } from 'react';

改為

import React, {Component} from 'react';
import PropTypes from 'prop-types';

2、原因  

應該是版本更新問題,之前用0.44時這樣寫是沒有問題的,剛新建的項目是0.52的,出現了這個報錯。

 

-----------2019.06.05更新--------------

五、react-native run-android時報錯Could not resolve all files for configuration ':app:debugRuntimeClasspath'

報錯如下圖:

解決方法:

打開android -> build.gradle

將如下代碼

allprojects {
    repositories {
        jcenter()
        ………
        ………
    }
}        

改為

allprojects {
    repositories {
        jcenter { url "http://jcenter.bintray.com/"}
        ………
        ………
    }
}   

 

 -----------2019.07.10更新--------------

六、報錯Unable to find module for EventDispatcher

報錯如下圖:

解決方法:

先Stop remote JS debugging,然后reload,就可以看到具體錯誤,然后根據錯誤提示進行解決。

 

END --------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM