【问题标题】:React Native 0.48 - `scrollview has no proptype for nativeReact Native 0.48 - `scrollview 没有原生的 proptype
【发布时间】:2023-03-15 15:52:01
【问题描述】:

我升级到 react native 0.48 后遇到以下错误,在渲染时显示在 expo 应用程序(仅在 IOS 中

scrollview 没有原生 prop 的 proptype RCTScrollView.onScrollAnimationEnd of native type BOOL .if you havent 自己更改了这个道具这通常意味着你的版本 本机代码和 javascript 代码不同步。更新其他 应该让这个错误消失。

不知道为什么,但我尽可能地缩小了我的代码库。当我尝试使用 ListView 时会生成此错误。 这是代码库:

import React from 'react';
import {AppRegistry,View,Text,StyleSheet,ListView} from 'react-native';

const styles = StyleSheet.create({
  fullView:{
    flex:1
  },
  statusBar: {
    backgroundColor:"#de3c3c",
    padding:5
  },
});



class MyComponent extends React.Component {
  constructor() {
    super();
    const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
    this.state = {
      dataSource: ds.cloneWithRows(['row 1', 'row 2']),
    };
  }

  render() {
    return (
      <ListView
        dataSource={this.state.dataSource}
        renderRow={(rowData) => <Text>{rowData}</Text>}
      />
    );
  }
}

export default MyComponent;

这是我的依赖项:

  "dependencies": {
    "expo": "^20.0.0",
    "react": "^16.0.0-alpha.12",
    "react-native": "^0.48.1",
    "react-navigation": "^1.0.0-beta.11"
  }

我查看了 ListView 的文档,似乎它已被弃用,但它应该仍然有效吗? FlatList 在我尝试时也会产生同样的错误。

注意:我确定没有其他打包程序在运行。

【问题讨论】:

    标签: javascript ios react-native


    【解决方案1】:

    找到可能的解决方案!

    - Bump expo version in package.json to 21.0.2
    - Bump react-native version in package.json to 0.48.4
    - Remove node_modules
    - npm install or yarn install
    - Change sdk version in app.json to 21.0.0
    

    ... ScrollView 错误应该会消失。

    【讨论】:

    【解决方案2】:

    基于https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md,看起来 expo 20.x.x 应该与 0.47.x 版本的 react-native 一起使用。

    【讨论】:

    • 是的,但我明确更新到 RN 0.48.* 以便我可以对其进行测试,并且我在应用商店中进行了检查,但 Expo Client 应用没有更新
    • 如版本表中所示,您无法将 RN 更新到 0.48。* 因为 Expo 20.x.x 仅与 0.47 兼容。* 您必须等到 Expo 有新版本才能更新 RN .
    【解决方案3】:

    显然,目前 Expo Client 应用程序与 RN 0.48 及更高版本不完全兼容。 一种解决方案是使用 react-native init 来测试版本 0.48 的 react 本机项目。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题。但我没有使用博览会。 最后我通过重置 ios 模拟器修复它。

      步骤:硬件 - 擦除所有内容和设置 - 重置

      【讨论】:

        猜你喜欢
        • 2016-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-04
        • 2016-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多