Menggunakan React Context dengan react-konva

Status bersama berarti bahwa perubahan di menu sebelah kiri dapat memperbarui data yang digunakan untuk merender komponen layar di peta perjalanan pengguna

Melanjutkan dari posting saya tentang penggunaan react-konvasebagai bagian dari reciprocal.dev untuk membangun Peta Perjalanan Pengguna dan kemudian menambahkan zoom dan panning ke peta tersebut, saya memutuskan untuk menambahkan beberapa peningkatan untuk mengubah properti komponen yang dirender di kanvas dari luar kanvas.

Untuk mengimplementasikan peningkatan ini, saya perlu memperkenalkan status di seluruh aplikasi sehingga saya dapat melacak interaksi di UI non-kanvas dan memperbarui nilai dalam komponen kanvas.

Untuk melakukan ini, saya mulai dengan membangun konteks yang kemudian dapat saya akses, menggunakan useContextpengait di komponen yang diperlukan untuk mengakses properti konteks yang diekspos untuk mengubah status aplikasi.

Saya menambahkan penyedia konteks di tingkat komponen akar sehingga komponen anak dapat mengakses konteks dan sementara ini bekerja dengan baik dengan elemen UI yang saya buat untuk menampilkan informasi layar, itu tidak berfungsi dengan komponen di kanvas.

Komponen yang merupakan turunan dari Stageelemen kanvas yang digunakan untuk merender tidak dapat mengakses properti ini karena masalah pelingkupan.

Mengakses Konteks Bereaksi dalam Tahap reaksi-konva

Perbaikan untuk mengatasi masalah pelingkupan relatif sederhana, hanya perlu menyiapkan penyedia konteks lain di dalam file Stage.

Untuk penyedia baru untuk menggunakan kembali nilai dari penyedia asli, kita perlu membungkus konsumen di sekitar Stagedan memastikan bahwa komponen penyedia konteks kita dapat memiliki nilai yang ditetapkan oleh prop.

Setelah kami memiliki penyedia di dalam, Stagekami dapat menggunakan useContextpengait di dalam komponen yang akan dirender ke kanvas.

Struktur akhir terlihat seperti ini:

Menggunakan React Context untuk memperbarui elemen UI pada perubahan status

Dengan konteks yang dapat diakses dari dalam kanvas, kita dapat menggunakan konteks ini untuk memperbarui status bersama antara elemen UI di luar kanvas dan elemen di dalamnya.

Pertama kita perlu memiliki beberapa cara untuk mendapatkan dan menetapkan nilai yang akan diperbarui melalui UI non-kanvas. Untuk melakukan ini, kami menggunakan useStateuntuk melacak nilai yang dipanggil colourdan pengambil dan penyetel nilai ini ke penyedia melalui prop nilainya.

Nilai warna ini diubah di dalam UI non-kanvas yang kami panggil setColoursetiap kali pengguna memilih nilai dari elemen pemilihan warna.

Di dalam komponen kanvas, kami mengambil colournilai dari konteks dan menggunakannya untuk mengatur warna yang digunakan dalam komponen.

Setelah kita mendapatkan nilai warna yang dibaca oleh komponen kanvas dan disetel oleh komponen non-kanvas, sekarang kita dapat mengatur warna Rectmenggunakan kotak pilih.

Ringkasan

Meskipun posting ini mencakup kasus penggunaan yang sangat sederhana, tidak ada alasan mengapa Anda tidak dapat menggunakan React Context untuk melacak status sejumlah nilai dan membangun UI lanjutan yang memungkinkan pengguna memperbarui objek di dalam kanvas dari luarnya.

Anda dapat menemukan demo status bersama dalam contoh Peta Perjalanan Pengguna yang saya buat sebagai bagian dari reciprocal.dev , karena ini menggunakan pendekatan yang disebutkan dalam posting ini untuk melacak status aplikasi antara UI non-kanvas dan kanvas utama .

Suggested posts

Mencari Informasi Tentang Nama Domain

Kutipan dari Alat Perangkat Lunak Kecil dan Tajam oleh Brian P. Hogan

Mencari Informasi Tentang Nama Domain

Saat Anda membuat permintaan ke facebook.com, komputer Anda mencari nama domain untuk menerjemahkan nama domain tersebut menjadi alamat IP sehingga komputer Anda dapat membuat koneksi tersebut.

Menghindari Akibat Menghancurkan Stroke: Belajar dari Perjalanan Keluarga .

Menghindari Akibat Menghancurkan Stroke: Belajar dari Perjalanan Keluarga .

Pendahuluan Stroke adalah keadaan darurat medis yang dapat menyerang siapa saja kapan saja. Itu terjadi ketika aliran darah ke bagian otak terganggu, yang menyebabkan hilangnya fungsi otak secara tiba-tiba.

Related posts

Tidak ada lagi kata sandi — bagaimana kunci sandi akan menggantikan kata sandi Anda

Tidak ada lagi kata sandi — bagaimana kunci sandi akan menggantikan kata sandi Anda

Untuk menghindari ambiguitas istilah berikut akan digunakan; Pengautentikasi; Ponsel yang digunakan untuk membuat situs web login; Situs web atau aplikasi yang digunakan pengguna untuk membuat Layanan permintaan login; Vendor menyediakan layanan yang diberikan misalnya

Buku Pertama Seorang Anak tentang Menjadi Tinggi

Buku Pertama Seorang Anak tentang Menjadi Tinggi

(Peringatan- Ini Satire, dimaksudkan untuk Menjadi Gleefully Subversive- Jelas bukan untuk anak-anak) Anda pernah melihat ibu dan ayah Anda bersembunyi di dapur dan merokok rokok yang bau itu. Mereka memberi tahu Anda.

Percakapan Berbahaya

Percakapan Berbahaya

Jika kita ingin terus berkembang di planet ini, kita harus melakukan percakapan yang berbahaya. Yang menantang apa yang telah kita lakukan, apa yang kita lakukan, dan apa yang saat ini akan terus kita lakukan (atau rencanakan untuk lakukan).

Kebohongan Koboi

Bagaimana perusahaan besar menjual kebohongan besar kepada orang Amerika

Kebohongan Koboi

Ini adalah pagi keemasan yang cemerlang di perbukitan barat, saat sinar pertama matahari menyinari rerumputan beku di dataran. Kawanan sapi Angus yang tenang, hitam legam dan besar, membentuk siluet melawan matahari terbit saat mereka menyusuri jalan setapak menuju lokasi yang mereka semua kenal dengan baik; bar sarapan.