我使用的是 VScode 編輯器,有時候,卸載包,安裝包就會編譯失敗,解決方式
gradlew clean
編譯錯誤 Execution failed for task ':app:compileDebugJavaWithJavac'.
這個問題吧,就是我引入 react-native-dialogs產生的錯誤 ,因為安裝這個包關聯到超過6萬多個包的下載,導致程序報64K限制錯誤,我當時看了一下,為了使用這一個方法和效果,增加整個項目的負擔,完全沒必要,我就卸載了,但在卸載之前,我手賤,運行了一條 react-native link XXX這個命令,導致手動添加了這個包。所以后面我yarn remove 包 ,還是沒刪掉。之后就報編譯錯誤。這個時候報錯信息不全,根本找不到問題所在,此時需要運行,下面這條命令,我看到了詳細報錯信息。
gradlew compileDebugSources --stacktrace -info
我就找到那個位置 ,將那個手動link進去的包 ,手動刪除掉。
Warning: Each child in a list should have a unique "key" prop.
產生這種錯誤就兩種
第一 ,使用map這類函數時,沒有給最外層綁定 key值
第二,使用FlatList時,keyExtractor時,綁定key的函數沒有附上值,比如像下面
<FlatList data={this.state.dynamicData} renderItem = {(item)=>this.renderArticleItem(item)} keyExtractor={item => item.id} // 如果item.id=undefined時,就會報錯,沒有key //修改成 item.artId />