react-native 的一些坑

TypeError: undefined is not an object (evaluating 'props.getItem')

@babel/plugin-proposal-class-properties 的锅

解决

添加.babelrc
配置优先级@babel/plugin-transform-flow-strip-types高于@babel/plugin-proposal-class-properties

{
  "plugins": [
    ["@babel/plugin-transform-flow-strip-types"],
    ["@babel/plugin-proposal-decorators", { "legacy": true }],
    ["@babel/plugin-proposal-class-properties", { "loose": true }]
  ]
}

清除缓存并启动
expo start -c

不做上述处理,不知道为什么原项目不会报错,但当把整个项目copy(包括node_modules)然后挪个位或者换个名就会报以上错误。

Failed to install the following Android SDK packages as some licences have not been accepted.

原因

一般产生于没用过Android Studio,直接打开项目build。

解决

macOS :
yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

Windows:
%ANDROID_HOME%/tools/bin/sdkmanager --licenses

Execution failed for task ':app:validateSigningDebug'.

方案一

点击Android studio File-选择ProjectStructure-选择app-选择signing

最后直接把Store File里指定的Keystore文件的路径换成自己的Keystore路径(当然这里可能需要自己签名有点麻烦)

再clean一下工程就可以了。

方案二

打开build.gradle(Module:app),把signingConfigs节点注释掉;再把buildTypes节点改成原始的:

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

你可能感兴趣的:(react-native)