react-datepicker 样式未应用于已部署的构建

Jap*_*eet 12 javascript reactjs next.js react-datepicker

我正在使用 react-datepicker npm 模块,当我部署构建时,它的样式被破坏了(未应用样式),它在本地环境中运行良好。

我已经像这样导入了它的样式: import 'react-datepicker/dist/react-datepicker.css';

我找到了像这样导入的地方: import './../../node_modules/react-datepicker/dist/react-datepicker.css';

它也不起作用。

我认为这可能是 SSR 的原因,所以我删除了该组件的 SSR,但也没有使用 CSR。

当前结果

在此处输入图片说明

想要的结果

在此处输入图片说明

这是我的组件代码:

 import React from 'react';
 import DatePicker from 'react-datepicker';

 import calendarIcon from './../../assets/images/calendar-icon.svg';

 import 'react-datepicker/dist/react-datepicker.css';
 // import 'react-datepicker/dist/react-datepicker-cssmodules.min.css';
 import './Datepicker.scss';

 const Datepicker = ({ datepickerClassName, datepickerStyle, 
 selectedDate, datepickerInputClassName, handleChange }) => (
       <div className={`datepicker d-flex align-center 
           ${!!datepickerClassName ? datepickerClassName : ''}`}
           style= {datepickerStyle}
       >
       <span className='d-flex align-center icon-container'>
           <img src={calendarIcon} className='icon' />
       </span>

       <DatePicker
            placeholderText='DD/MM/YYYY'
            dateFormat='dd/MM/yyyy'
            id='start-date'
            autoComplete='off'
            selected={selectedDate}
            className={datepickerInputClassName}
            onChange={handleChange}
        />
    </div>
);

export default Datepicker;
Run Code Online (Sandbox Code Playgroud)

如果有人遇到此问题或对此有所了解,请帮助我。

sae*_*azi 22

添加其样式文件

import 'react-datepicker/dist/react-datepicker.css'
Run Code Online (Sandbox Code Playgroud)


ndn*_*kov 12

我必须导入里面的样式application.scss

@import 'react-datepicker/dist/react-datepicker';
Run Code Online (Sandbox Code Playgroud)

内联导入(在 jsx/tsx 内部)在开发环境中工作而不是在其他环境中工作的原因可能是因为在开发环境中您有extract_css: false(内部config/webpacker.yml),而在其他环境中它设置为true.


小智 10

您可以使用CDN来解决问题

 <link rel="stylesheet"  href="https://cdnjs.cloudflare.com/ajax/libs/react-datepicker/2.14.1/react-datepicker.min.css" />
Run Code Online (Sandbox Code Playgroud)

在 Next js 中,如果要导入某个库的 css,请使用 CDN


小智 5

如果您使用 Next.js 导入

import "react-datepicker/dist/react-datepicker.css";
Run Code Online (Sandbox Code Playgroud)

在你的 _app.js 页面中它将起作用。