【问题标题】:using moment in react native在本机反应中使用时刻
【发布时间】:2020-06-12 03:14:29
【问题描述】:

当我导入像这样的时刻时:

import * as moment from 'moment';

我收到以下错误

moment is not a function.

当像这样导入时:

import moment from 'moment';

我收到以下错误:

External module 'moment' has no default export

添加反应原生的最佳方式是什么?

顺便说一句,我通过这个命令添加了时刻:npm install --save moment

我之前也用过 toLocaleDateString(),它在 IO 上工作,但在 android 上不能正常工作,所以我必须使用 moment。

【问题讨论】:

    标签: reactjs react-native momentjs react-native-android


    【解决方案1】:

    1- 首先,安装:

    npm i moment 
    

    2-秒导入:

    import moment from "moment";
    

    3- 然后使用并获取时刻日期:

    const [currentDate, setCurrentDate] = useState('');
    
    useEffect(() => {   
            
        // get current time 
    
         var date = moment().utcOffset('+03:00').format('YYYY-MM-DD');
    
        // or get time ' hh:mm:ss a'
    
        setCurrentDate(date); 
     }, []);
    

    4- 精细使用:

    <Text style={styles.txtcurentDate}>Current Date:{currentDate}</Text >
    

    【讨论】:

      【解决方案2】:

      由于你使用的是expo,所以导入moment as

      let moment = require('moment');
      

      希望这对您有所帮助。如有疑问,请随意。

      【讨论】:

        【解决方案3】:

        检查node_modulepackage.json 你是否已经有了moment 包。如果您拥有所有这些,只需删除 node_modules 并重新安装所有软件包。

        【讨论】:

        • 我在node_modulepackage.json 都有时间,我也删除了node_modules 并执行npm install 仍然得到相同的结果
        • 我想知道你是通过expo还是浏览器运行应用程序如果你使用expo尝试再次构建,有时你安装的包不是从expo的热重载中加载的。
        • 我使用expo,我关闭了应用程序并从命令行重新启动它,你说的重新构建它是什么意思?
        • 我的意思是删除android文件夹(也可能是ios),然后运行react-native ejectreact-native upgrade(重建android/ios文件夹)react-native link,然后再运行react-native run-iosreact-native run-android。试试这个。
        【解决方案4】:
        import moment from "moment";
        

        你有这个权利。如果您在使用 npm 时遇到问题,请尝试在根目录中运行 npm install

        【讨论】:

        • 你有没有机会使用打字稿?
        猜你喜欢
        • 1970-01-01
        • 2018-01-17
        • 2020-01-30
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多