Enterprise: Datagrid: يتم تعيين العنصر النائب على NaN.000 بعد النقر في الحقل الفارغ

تم إنشاؤها على ٦ يوليو ٢٠٢١  ·  3تعليقات  ·  مصدر: infor-design/enterprise

صف الخلل
Datagrid: يتم تعيين Palaceholder على NaN.000 بعد النقر في الحقل الفارغ

لإعادة إنتاج

خطوات إعادة إنتاج السلوك:

  1. انتقل إلى https://4530-beta0-enterprise.demo.design.infor.com/components/datagrid/example-placeholder.html
  2. في معرف الصف 1 - عمود السعر مع عنصر نائب ، انقر داخل الحقل وانقر خارج (انظر الخطأ)
  3. في معرف الصف 1 - عمود الإجراء ، انقر فوق حقل القائمة المنسدلة لفتحه
  4. حدد فارغ
  5. افتح مرة أخرى باستخدام مفتاح الإدخال
  6. حدد قيد الانتظار (انظر الخطأ)

سلوك متوقع
يجب أن يظهر العنصر النائب

إصدار
4.530 - بيتا - IDS

لقطات
image

برنامج
جميع المتصفحات الرئيسية ونظام التشغيل

سياق إضافي
غير متاح

[2] good first issue type

ال 3 كومينتر

@ Jah25 ربما كان ينبغي أن

المنسق: placeholder and editor: المدخلات على الأرقام هنا:
https://github.com/infor-design/enterprise/blob/main/app/views/components/datagrid/example-placeholder.html#L71

نظرًا لأن هذه هي المشكلة الأولى ، أعتقد أنها ربما تكون معقدة بعض الشيء لتبدأ بها (آسف من جانبي). لكن يمكنني رؤية الإصلاح الذي سيكون في https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10434

تحاول وظيفة coerveValue إعادة البيانات إلى تنسيق المصدر fx (الرقم في هذه الحالة). أعتقد أنه سيكون من الآمن استبعاد NaN هنا. لذلك ربما يظهر NaN فارغًا

     // coerced value may be coerced to empty string, null, or 0
      if (coercedVal === undefined && Number.isNaN(value)) {
        coercedVal = value;
      }

شيء على هذا المنوال. لكن مجرد تلميح. إنني ألاحظ أن هذا المثال غريب بعض الشيء ، لذا ربما نقوم بإصلاح هذا بسرعة والمضي قدمًا.

HTH

tmcconechy يا تيم لقد رأيت هذا للتو. نعم ، لقد استغرق الأمر القليل من المطاردة للعثور عليه ، لكنني وجدت أيضًا أن الإكراه كان هو المشكلة على الرغم من أنني مررت عبرها هنا حيث يتم التحقق من الإكراه مقابل القيمة القديمة لتحديد نوع البيانات الذي يجب أن يفرضه أيضًا

https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10372

كان إصلاحي سيكون شيئًا كهذا
let isWord = /[A-Za-z!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]]/ ... else if (typeof oldVal === 'number' && value && isWord.test(value) ) { newVal = Locale.parseNumber(value); // remove thousands sep , keep a number a number }

لا أعتقد أنها حماية مثالية ولكنها تغطي عددًا قليلاً من حالات الحافة ، هل تريد المضي قدمًا في التغيير أو إصلاح المثال؟

@ Jah25 التي تبدو وكأنها يجب أن تعمل. دعنا نعطيها محاولة

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات