美文网首页React
实际ReactNative开发中遇到的坑

实际ReactNative开发中遇到的坑

作者: 强子ly | 来源:发表于2022-02-09 17:42 被阅读0次

    不知不觉就过了6个月试用期,用 ReactNative 开发也有几个月了,后面应该还会持续下去,本文主要列举一些实际工作过程中遇到的坑,如果有更优的解决方案,欢迎留言讨论。


    一、报错信息:TypeError: global.nativeCallSyncHook is not a function...

    问题:与原生有同步交互,又开启了调试模式

    - 原生代码
    @implementation RCTLeeNativeProvider
    RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getInfoForSync) {
        return @{
            @"version": @"1.0.0",
            @"name": @"qinagzi"
        };
    }
    @end
    
    
    - JS调用原生代码
    const params = NativeModules.LeeNativeProvider.getInfoForSync();
    
    
    ⚠️ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD
    
    • 1.2、解决方案(以下采用一种即可)
    1、关闭远程调试 [Stop Remote JS Debugging], 调试可采用alert(xx)
    
    2、找到调试的JS文件,先注释同步交互方法,采用伪代码实现,调试完再改回去(纯为了调试)
    
    3、使用其他 api 替换 RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD
    - 例如:RCT_EXPORT_METHOD + Promises
    
    问题及解决方案 - [Stop Remote JS Debugging] 官网说明(⚠️只有英文版的才有,中文版没有写)

    二、Warning: Each child in an array or iterator should have a unique “key” prop.

    • 2.1、在循环的子项添加一个key
    修改前
    listData.map((item, index) => {
        return (
            <View style={{...}}>
            </View>
        )
    })
    
    
    修改后
    listData.map((item, index) => {
        return (
            <View style={{...}} key={index}>
            </View>
        )
    })
    

    三、<Text>标签在部分安卓上展示不全

    • 3.1、在style中添加lineHeight
    <Text style={{
        fontSize: 14,
        lineHeight:14 * 1.5,
    }}>xxxxxxx....</Text>
    

    四、Module HMRClient is not a registered callable module (calling enable)

    问题 解决方案

    五、global.nativeTraceBeginSection is not a function

    官方解决办法


    六、ScrollView 滚动条位置不对

    滚动条位置不对
    增加属性设置 :
    <ScrollView scrollIndicatorInsets={{right: 1}} ...
    

    七、react-scripts: command not found

    /bin/sh: react-scripts: command not found
    error Command failed with exit code 127.
    
    
    解决方案:
    1、删除node_modules
    2、npm install
    

    持续更新中


    参考文章

    React Native-英文版
    JSI小试牛刀——Native同步调用JS代码
    Faster than faster——RN新架构中的JavaScript Interface
    Android P/Q文本显示不全

    相关文章

      网友评论

        本文标题:实际ReactNative开发中遇到的坑

        本文链接:https://www.haomeiwen.com/subject/uggwkrtx.html