Barista: [Bagian yang Dapat Diperluas] Pemaksaan Boolean tidak berfungsi dengan benar untuk properti `expanded`

Dibuat pada 10 Agu 2020  ·  13Komentar  ·  Sumber: dynatrace-oss/barista

Laporan Bug

Halo tim! Tampaknya properti expanded tidak bekerja dengan paksaan, tetapi berfungsi dengan benar jika disetel sebagai: [expanded]="true" . Ini berfungsi dengan baik untuk waktu yang lama, tetapi baru-baru ini berhenti berfungsi dan mencegah salah satu halaman produksi saya dirender dengan benar: https://ci360.dynatrace.com/account/environment/cloud/managed/298

Perilaku yang Diharapkan

Saya berharap yang berikut ini berfungsi seperti biasa:
<dt-expandable-section expanded>

Perilaku Saat Ini

TypeError: Cannot set property 'expanded' of undefined
    at DtExpandableSection.set expanded [as expanded] (dynatrace-barista-components-expandable-section.js:79)
    at Object.ngOnChangesSetInput [as setInput] (core.js:26879)
    at setInputsFromAttrs (core.js:13039)
    at instantiateAllDirectives (core.js:12752)
    at createDirectivesInstances (core.js:11989)
    at Module.ɵɵelementStart (core.js:21043)
    at AppComponent_Template (app.component.html:1)
    at executeTemplate (core.js:11949)
    at renderView (core.js:11735)
    at renderComponent (core.js:13244)

Kemungkinan Solusi

<dt-expandable-section [expanded]="true">

Langkah-langkah untuk Reproduksi

klon: https://github.com/areknow/a-expandable-section-demo dan jalankan

Versi yang Digunakan:

  • @dynatrace/barista-components : 7.6.0

Terima kasih banyak atas kerja keras Anda!

bug has-pr

Komentar yang paling membantu

@lukasholzer Mengikuti perintah yang dinyatakan dalam posting Anda, saya akan dapat menjalankan proyek tanpa masalah

Semua 13 komentar

Hai @areknow terima kasih banyak telah melaporkan ini, tetapi saya tidak dapat mereproduksi ini di stackblitz
https://stackblitz.com/edit/github-yp9pwy?file=src/expandable -section/expandable-section-default-example/expandable-section-default-example.html

Selanjutnya, ketika saya melihat kode coerceBooleanProperty digunakan. 🤔

Apakah Anda yakin bahwa Anda menggunakan komponen dengan benar?

https://github.com/dynatrace-oss/barista/blob/master/libs/barista-components/expandable-section/src/expandable-section.ts#L76

  @Input()
  get expanded(): boolean {
    return this._panel.expanded;
  }
  set expanded(value: boolean) {
    this._panel.expanded = coerceBooleanProperty(value);
    this._changeDetectorRef.markForCheck();
  }

Hai @lukasholzer! Saya juga tidak dapat mereproduksi di stackblitz jadi saya membuat repo minimal. Ini mungkin menunjukkan masalah dengan ivy yang tidak terjadi dengan penyaji tampilan. Apakah Anda dapat mengkloning repo dan melihat kesalahan konsol?

Halo @lukasholzer ,
Saya juga dapat mereproduksi masalah, dengan notasi singkat untuk arahan.

@areknow Bisakah Anda mencoba menggunakan materi yang dapat diperluas di aplikasi Anda dan membandingkan perilakunya. Saya ingin tahu apakah kami memiliki beberapa masalah kompilasi dengan kompatibilitas ivy. Ini akan menjadi pengaturan minimal https://stackblitz.com/edit/angular-rubmxc?file=src/app/expansion -steps-example.html

@areknow Saya mengkloning repo Anda melakukan npm install dan sekarang ng serve:

image

selain itu harap perbarui versi highcharts dan hapus @types/highcharts

@ffriedl89 Saya mengimpor MatExpansionModule dan menambahkan markup komponen ke proyek, ini berjalan dengan baik dengan notasi direktif singkatan.
Screen Shot 2020-08-12 at 9 43 20 AM

@lukasholzer Saya menghapus @types/highcharts dan memperbarui highcharts ke versi terbaru. Masih masalah yang sama:

core.js:6185 ERROR TypeError: Cannot set property 'expanded' of undefined
    at DtExpandableSection.set expanded [as expanded] (dynatrace-barista-components-expandable-section.js:79)
    at Object.ngOnChangesSetInput [as setInput] (core.js:26879)
    at setInputsFromAttrs (core.js:13039)
    at instantiateAllDirectives (core.js:12752)
    at createDirectivesInstances (core.js:11989)
    at Module.ɵɵelementStart (core.js:21043)
    at AppComponent_Template (app.component.html:1)
    at executeTemplate (core.js:11949)
    at renderView (core.js:11735)
    at renderComponent (core.js:13244)

@areknow saya meletakkan label yang tidak dapat direproduksi di atasnya karena saya melihat kesalahan di atas ketika saya ingin menyajikan aplikasi. Jadi saya tidak bisa melayani aplikasi.

Tidak mungkin membiarkan repo Anda berjalan untuk saya.

Langkah-langkah yang saya buat:

  1. git clone ...
  2. npm install
  3. ng serve

@lukasholzer Saya telah menjalankan repo pada tiga mesin terpisah. Tidak yakin apa masalahnya, ini adalah proyek yang sangat mendasar
@josecolella @toddbaert juga telah menjalankan repo dan telah melihat masalah yang sama.

~/Desktop/test
❯ git clone https://github.com/areknow/a-expandable-section-demo.git .
Cloning into '.'...
remote: Enumerating objects: 47, done.
remote: Counting objects: 100% (47/47), done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 47 (delta 10), reused 45 (delta 8), pack-reused 0
Unpacking objects: 100% (47/47), done.

~/Desktop/test master
❯ ls
README.md          angular.json       browserslist       e2e                karma.conf.js      package-lock.json  package.json       src                tsconfig.app.json  tsconfig.json      tsconfig.spec.json tslint.json

~/Desktop/test master
❯ npm i

> [email protected] install /Users/arnaud.crowther/Desktop/test/node_modules/watchpack-chokidar2/node_modules/fsevents
> node install.js

No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/Users/arnaud.crowther/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:311:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Darwin 19.5.0
gyp ERR! command "/Users/arnaud.crowther/.nvm/versions/node/v12.16.1/bin/node" "/Users/arnaud.crowther/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/arnaud.crowther/Desktop/test/node_modules/watchpack-chokidar2/node_modules/fsevents
gyp ERR! node -v v12.16.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok

> [email protected] install /Users/arnaud.crowther/Desktop/test/node_modules/webpack-dev-server/node_modules/fsevents
> node install.js

No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/Users/arnaud.crowther/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:311:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Darwin 19.5.0
gyp ERR! command "/Users/arnaud.crowther/.nvm/versions/node/v12.16.1/bin/node" "/Users/arnaud.crowther/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/arnaud.crowther/Desktop/test/node_modules/webpack-dev-server/node_modules/fsevents
gyp ERR! node -v v12.16.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok

> [email protected] postinstall /Users/arnaud.crowther/Desktop/test/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> @angular/[email protected] postinstall /Users/arnaud.crowther/Desktop/test/node_modules/@angular/cli
> node ./bin/postinstall/script.js

added 1391 packages from 1132 contributors and audited 1393 packages in 20.393s

41 packages are looking for funding
  run `npm fund` for details

found 5 vulnerabilities (3 low, 2 high)
  run `npm audit fix` to fix them, or `npm audit` for details

~/Desktop/test master 22s
❯ ng serve
0% compiling
Compiling @angular/core : es2015 as esm2015

Compiling @angular/common : es2015 as esm2015

Compiling @angular/platform-browser : es2015 as esm2015

Compiling @angular/platform-browser-dynamic : es2015 as esm2015

Compiling @angular/common/http : es2015 as esm2015

Compiling @angular/cdk/platform : es2015 as esm2015

Compiling @angular/cdk/bidi : es2015 as esm2015

Compiling @angular/cdk/collections : es2015 as esm2015

Compiling @angular/cdk/scrolling : es2015 as esm2015

Compiling @angular/cdk/keycodes : es2015 as esm2015

Compiling @angular/cdk/observers : es2015 as esm2015

Compiling @angular/cdk/a11y : es2015 as esm2015

Compiling @angular/cdk/tree : es2015 as esm2015

Compiling @angular/animations : es2015 as esm2015

Compiling @angular/forms : es2015 as esm2015

Compiling @angular/cdk/portal : es2015 as esm2015

Compiling @angular/cdk/overlay : es2015 as esm2015

Compiling @dynatrace/barista-components/core : es2015 as esm2015

Compiling @dynatrace/barista-components/icon : es2015 as esm2015

Compiling @angular/animations/browser : es2015 as esm2015

Compiling @angular/platform-browser/animations : es2015 as esm2015

Compiling @angular/cdk/table : es2015 as esm2015

Compiling @angular/cdk/drag-drop : es2015 as esm2015

Compiling @dynatrace/barista-components/button : es2015 as esm2015

Compiling @dynatrace/barista-components/indicator : es2015 as esm2015

Compiling @dynatrace/barista-components/empty-state : es2015 as esm2015

Compiling @dynatrace/barista-components/form-field : es2015 as esm2015

Compiling @dynatrace/barista-components/formatters : es2015 as esm2015

Compiling @angular/cdk/text-field : es2015 as esm2015

Compiling @dynatrace/barista-components/input : es2015 as esm2015

Compiling @dynatrace/barista-components/checkbox : es2015 as esm2015

Compiling @dynatrace/barista-components/pagination : es2015 as esm2015

Compiling @dynatrace/barista-components/table : es2015 as esm2015

Compiling @dynatrace/barista-components/expandable-panel : es2015 as esm2015

Compiling @dynatrace/barista-components/expandable-section : es2015 as esm2015

Compiling @angular/cdk/accordion : es2015 as esm2015

Compiling @angular/material/expansion : es2015 as esm2015

chunk {main} main.js, main.js.map (main) 14 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 150 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.15 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 108 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 4.99 MB [initial] [rendered]
Date: 2020-08-12T15:43:23.068Z - Hash: 1ecde4c6e7201f777336 - Time: 57275ms
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
: Compiled successfully.

Date: 2020-08-12T15:43:24.031Z - Hash: 1ecde4c6e7201f777336
5 unchanged chunks

Time: 537ms
: Compiled successfully.

@lukasholzer Mengikuti perintah yang dinyatakan dalam posting Anda, saya akan dapat menjalankan proyek tanpa masalah

@lukasholzer Saya juga dapat mereproduksi masalah dengan pesan kompilasi yang berhasil.

  1. Repo git yang dikloning
  2. instal npm
  3. ng melayani

Hasil:
Screen Shot 2020-08-12 at 12 03 13 PM
Screen Shot 2020-08-12 at 12 03 07 PM
Screen Shot 2020-08-12 at 12 02 47 PM
Screen Shot 2020-08-12 at 11 57 00 AM

@areknow hei @thomaspink dan saya sendiri menemukan masalah yang akan kami perbaiki! :) Ingin tahu bagaimana ini bisa bekerja bahkan di VE saat kami mencoba mengatur properti di setter yang merupakan viewChild jadi Lifecycle nanti. 🤔

Apakah ini perbaikan mendesak untuk Anda atau Anda boleh mendapatkannya dengan 8.0.0 jika tidak, kami harus melakukan backport untuk masalah ini.

Diperbaiki oleh PR #1491

@lukasholzer itu berita bagus! Saya melakukan hot fix untuk aplikasi saya, jadi saya bisa menunggu hingga 8.0.0. Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

bradking1329 picture bradking1329  ·  3Komentar

kaikcreator picture kaikcreator  ·  10Komentar

samuelfahrngruber picture samuelfahrngruber  ·  13Komentar

lukasholzer picture lukasholzer  ·  8Komentar

tomheller picture tomheller  ·  21Komentar