首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义的对象不是_react.PropTypes.array。

未定义的对象不是_react.PropTypes.array。
EN

Stack Overflow用户
提问于 2022-11-28 00:10:09
回答 1查看 24关注 0票数 0

我正在使用React本地(世博会CLI)。由于我重新安装了npm,所以当我尝试运行npm start时,我发现了一些与react-native-snap-carousel相关的类似错误(我正在使用它)。

代码语言:javascript
复制
TypeError: undefined is not an object (evaluating '_react.PropTypes.array')    
at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error   
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:95:4 in reportException
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:141:19 in handleException
at node_modules\react-native\Libraries\Core\setUpErrorHandling.js:24:6 in handleError
at node_modules\@react-native\polyfills\error-guard.js:49:36 in ErrorUtils.reportFatalError
at node_modules\metro-runtime\src\polyfills\require.js:203:6 in guardedLoadModule
at http://192.168.1.6:19000/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:202384:3 in global code 

因此,在它的主文件中导入{PropTypes} from "react";并更改为import PropTypes from "prop-types"; (以前安装)。还将propTypes.items: PopTypes.array.isRequired更改为propTypes.items:PropTypes.array,也更改为slideStyle (因为我开始获得与itemsslideStyle相关的新错误是必需的),但现在我收到了这样的新错误

。所有错误都与react-native-snap-carousel相关

这是我的package.json

下面是我如何使用react-native-snap-carousel

代码语言:javascript
复制
import React, { useState, useEffect } from "react";
import {
  View,
  StyleSheet,
  Image,
  Dimensions,
  TouchableWithoutFeedback,
} from "react-native";
import { getBannersApi } from "../../Api/HomeBanner";
import Carousel, { Pagination } from "react-native-snap-carousel";
import { size } from "lodash";
import { useNavigation } from "@react-navigation/native";

import { SERVER_RESOURCERS } from "../../Utils/Constans";

const width = Dimensions.get("window").width;
const height = 160;

export default function Banner() {
  const [banners, setBanners] = useState(null);
  const [banneActive, setBanneActive] = useState(0);
  const navigation = useNavigation();

  useEffect(() => {
    (async () => {
      const response = await getBannersApi();
      setBanners(response.data);
    })();
  }, []);

  const goToProduct = (id) => {
    navigation.push("product", { idProduct: id });
  };

  if (!banners) return null;

  const renderItem = ({ item }) => {
    return (
      <TouchableWithoutFeedback
        onPress={() => goToProduct(item.attributes.product.data.id)}
      >
        <Image
          style={styles.carousel}
          source={{
            uri: `${SERVER_RESOURCERS}${item.attributes.banner.data[0].attributes.formats.small.url}`,
          }}
        />
      </TouchableWithoutFeedback>
    );
  };

  return (
    <View style={styles.container}>
      <Carousel
        layout="default"
        data={banners}
        sliderWidth={width}
        itemWidth={width}
        renderItem={renderItem}
        loop={true}
        onSnapToItem={(i) => setBanneActive(i)}
        autoplay={true}
        autoplayInterval={5000}
        autoplayDelay={2000}
      />
      <Pagination
        dotsLength={size(banners)}
        activeDotIndex={banneActive}
        inactiveDotOpacity={0.6}
        inactiveDotScale={0.6}
        containerStyle={styles.dotsContainer}
        dotStyle={styles.dot}
        dotColor={styles.dot.backgroundColor}
        inactiveDotColor={styles.dot.backgroundColor}
      />
    </View>
  );
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-28 14:55:44

我注意到不再支持react-native-snap-carousel了,所以我迁移到了react-native-reanimated-carousel

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74594788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档