You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native项目OtpVerification页面styles模块解析失败求助

React Native OtpVerification页面模块解析错误修复指南

错误详情

运行OtpVerification页面时出现模块解析错误,具体提示如下:

error: Error: Unable to resolve module ./styles from C:\Users\user\Desktop\project\project\src\Screens\OtpVerification\OtpVerifications.js:

None of these files exist:
  * src\Screens\OtpVerification\styles(.native|.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
  * src\Screens\OtpVerification\styles\index(.native|.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
   8 | import strings from '../../constatns/lang';
   9 | import navigationStrings from '../../constatns/navigationStrings';
> 10 | import { moderateScale,  } from '../../styles/responsiveSize';
     |                                      ^
  11 | import styles from './styles';
  12 | import OtpInputs from 'react-native-otp-inputs';
  13 | import actions from '../../reudx/actions';

当前页面导入代码:

//import liraries
import React, { Component } from 'react';
import { View, Text, StyleSheet, TouchableOpacity, Image } from 'react-native';
import HeaderComponent from '../../Components/HeaderComponent';
import HorizontalLine from '../../Components/HorizontalLine';
import WrapperContainer from '../../Components/WrapperContainer';
import imagePath from '../../constatns/imagePath';
import strings from '../../constatns/lang';
import navigationStrings from '../../constatns/navigationStrings';
import { moderateScale, moderateScaleVertical } from '../../styles/responsiveSize';
import styles from './styles';
import OtpInputs from 'react-native-otp-inputs';
import actions from '../../reudx/actions';

自适应工具文件responsiveSize.js代码:

import { Dimensions, StatusBar } from 'react-native';
const { width, height } = Dimensions.get('window');

const guidelineBaseWidth = 375;
const guidelineBaseHeight = 812;

const scale = size => (width / guidelineBaseWidth) * size;
const verticalScale = size => (height / guidelineBaseHeight) * size;
const moderateScale = (size, factor = 0.5) => size + (scale(size) - size) * factor;
const moderateScaleVertical = (size, factor = 0.5) => size + (verticalScale(size) - size) * factor;
const textScale = percent => {
    const screenHeight = Dimensions.get('window').height;
    //calculate absolute ratio for bigger screens 18.5:9 requiring smaller scaling
    const ratio = Dimensions.get('window').height / Dimensions.get('window').width;
    //Guideline sizes are based on standard ~5″ screen mobile device
    const deviceHeight = 375
        ? screenHeight * (ratio > 1.8 ? 0.126 : 0.15) //Set guideline depending on absolute ratio
        : Platform.OS === 'android'
            ? screenHeight - StatusBar.currentHeight
            : screenHeight;

    const heightPercent = (percent * deviceHeight) / 100;
    return Math.round(heightPercent);
};

export { scale, verticalScale, textScale, moderateScale, moderateScaleVertical,width,height };

排查与解决步骤

  • 确认样式文件存在:检查src/Screens/OtpVerification目录下是否有styles.js(或对应后缀的样式文件,如styles.tsx),注意文件名大小写和路径是否正确,排除误删或移动文件的可能。
  • 修复导入语法错误:错误提示指向的第10行存在多余逗号,修正为:
    import { moderateScale, moderateScaleVertical } from '../../styles/responsiveSize';
    
  • 清理Metro缓存:执行命令清除缓存,避免缓存导致的解析异常:
    npx react-native start --reset-cache
    # 使用Expo则执行:npx expo start -c
    
  • 重启开发服务器:完全关闭当前开发服务器后重新启动,排除进程异常问题。
  • 验证路径正确性:确认../../styles/responsiveSize对应的src/styles/responsiveSize.js文件存在且命名正确。

内容的提问来源于stack exchange,提问作者user19488333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:03:20