ไม่สามารถรับ datepicker ของวัสดุ -ui เพื่อให้ทำงานได้


19

ด้วยเหตุผลบางอย่างฉันไม่สามารถรับdatepicker ของui วัสดุให้ทำงานได้ ทุกครั้งที่ datepicker แสดงผลใน React ข้อผิดพลาดต่อไปนี้จะถูกส่งออกไป:

RangeError: สตริงรูปแบบมีอักขระตัวอักษรละตินที่ไม่ใช้ Escape n

ฉันได้สร้าง stackblitz ด้วยเพียง datepicker ( https://stackblitz.com/edit/react-6ma6xd?embed=1&file=index.js ) และยังมีข้อผิดพลาดปรากฏขึ้น ผมทำอะไรผิดหรือเปล่า? ฉันคิดว่าฉันทำตามคำแนะนำทั้งหมดจากคู่มือการติดตั้ง

เชื่อมโยงไปยัง material-ui / pickers: https://material-ui-pickers.dev/


ในระหว่างนี้ฉันก็เห็นว่าพวกเขาได้อัปเดตเอกสารของพวกเขาแล้ว
NewVigilante

1
ผมมีปัญหาเดียวกัน. หลังจากประสบกับสิ่งนี้ฉันสามารถบอกได้ว่าถนนที่อยู่ข้างหน้านั้นใช้เวลานานในการใช้กรอบนี้
Mosia Thabo

คำตอบ:


19

ฉันมีปัญหาเดียวกันพบสิ่งนี้ในปัญหา GitHub:

https://github.com/mui-org/material-ui-pickers/issues/1440 ดังนั้นฉันจึงติดตั้ง "@ date-io / date-fns": "^ 1.3.13" และทำให้มันทำงานได้


แค่นั้นแหละขอบคุณ! พวกเขาควรอัพเดตเอกสารจริงหรืออย่างน้อยก็ใส่ความคิดเห็นที่นั่นจนกว่าจะได้รับการแก้ไข
NewVigilante


1

ดูเหมือนว่าตัวเลือกวัสดุ -ui-pickers กำลังใช้เวอร์ชันการพึ่งพาต่อไปนี้ (ซึ่งแตกต่างจากของคุณ):

"@date-io/date-fns": "1.0.1",
"material-ui-pickers": "2.1.1",

ในตัวอย่างของคุณคุณกำลังใช้ @ date-io เวอร์ชันที่ใหม่กว่าซึ่งเป็นเวอร์ชั่นที่ไม่รองรับของ material-ui-pickers:

"@date-io/date-fns": "2.0.1",
"@material-ui/pickers": "3.2.8",

คุณสามารถ (1) ตั้งค่ารุ่นของคุณให้ตรงกับตัวอย่างหรือ (2) ใช้เวอร์ชัน material-ui-pickers เวอร์ชันล่าสุดและดำเนินการจัดรูปแบบวันที่โดยใช้ฟังก์ชันที่กำหนดเองแทน DateFnsUtils

หวังว่านี่จะช่วยได้


ฉันคิดว่าฉันใช้แพ็คเกจล่าสุด สิ่งที่คุณส่งเป็นข้อเสนอแนะดูเหมือนจะเป็นคนที่เลิกใช้แล้วซึ่งฉันไม่อยากใช้ในการผลิต แพคเกจทั้งหมดที่ฉันใช้มาจากการรันคำสั่งในคู่มือการติดตั้ง ( material-ui-pickers.dev/getting-started/installation )
NewVigilante


1

ฉันลองคำตอบข้างต้นมันใช้งานไม่ได้ แต่พวกเขาให้เบาะแสกับโซลูชันคุณจะต้องลดระดับให้เต็มหากคำตอบก่อนหน้านี้ไม่เหมาะกับคุณ

npm install @material-ui/pickers@3.2.8
npm install @date-io/date-fns@1.3.13
npm install date-fns@2.8.1

1

เพียงใช้ momentJS: npm i @ date-io / moment @ 1.x ครู่หนึ่ง

import MomentUtils from '@date-io/moment';

function App() {
  return (
    <MuiPickersUtilsProvider utils={MomentUtils}>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.