Redux: Kesalahan kode dalam contoh yang dijelaskan dalam dokumen API untuk "combineReducers"?

Dibuat pada 14 Apr 2016  ·  3Komentar  ·  Sumber: reduxjs/redux

Dalam contoh yang dijelaskan sebagai bagian dari dokumen API "combineReducers", pada saat pembuatan toko, "peredam" sebagai parameter diteruskan ke createStore dalam file " app.js " ( let store = createStore(reducer) ).

Namun dalam " reducer/index.js ", nama fungsinya adalah "combineReducers" dan bukan "reducer" ( export default combineReducers({..}) ).

Jadi bukankah seharusnya parameter yang diteruskan saat pembuatan toko menjadi "combineReducers" (Misalnya: let store = createStore(combineReducers )) ??

Komentar yang paling membantu

Saya akan mengatakan tidak. Jika dipikir-pikir, Redux hanya memiliki satu fungsi peredam. Fakta bahwa contoh ini menggunakan combineReducers untuk membuat fungsi tersebut merupakan detail implementasi. Sejauh app.js yang bersangkutan, itu tidak tahu atau peduli apa yang terjadi di dalam fungsi itu, bagaimana kita membuatnya, atau apa yang dilakukannya.

Juga, perhatikan bahwa ketika reducers/index.js melakukan export default combineReducers({}) , itu sebenarnya bukan _creating_ sesuatu yang bernama "combineReducers". Dikatakan "ambil hasil dari panggilan fungsi ini, apa pun itu, dan jadikan itu sebagai ekspor default." Faktanya, secara teknis, output itu bahkan tidak memiliki nama variabel nyata yang terkait dengannya.

Terakhir, perhatikan bahwa ketika Anda melakukan export default , file apa pun yang diimpor yang ekspor defaultnya dapat memberikan nama apa pun yang diinginkannya ke variabel lokal, sama seperti bagaimana definisi fungsi dapat memberi nama parameter sesuatu yang berbeda dari nama variabel apa pun yang digunakan di situs panggilan. Contoh:

function someFunction(a, fred, randomVariableName) {}

const firstVariable = 1;
const theMeaningOfLife = 42;
const aTotallyUselessName = "Whatever";

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

Perhatikan bagaimana nama variabel yang saya definisikan di luar fungsi tidak harus memiliki korespondensi dengan nama parameter di dalam fungsi.

Demikian pula, saat mengekspor:

// fileA.js
export default const aThing = 42;

// fileB.js
import iCanGiveThisAnyNameIWant from "fileA";

Semua 3 komentar

Saya akan mengatakan tidak. Jika dipikir-pikir, Redux hanya memiliki satu fungsi peredam. Fakta bahwa contoh ini menggunakan combineReducers untuk membuat fungsi tersebut merupakan detail implementasi. Sejauh app.js yang bersangkutan, itu tidak tahu atau peduli apa yang terjadi di dalam fungsi itu, bagaimana kita membuatnya, atau apa yang dilakukannya.

Juga, perhatikan bahwa ketika reducers/index.js melakukan export default combineReducers({}) , itu sebenarnya bukan _creating_ sesuatu yang bernama "combineReducers". Dikatakan "ambil hasil dari panggilan fungsi ini, apa pun itu, dan jadikan itu sebagai ekspor default." Faktanya, secara teknis, output itu bahkan tidak memiliki nama variabel nyata yang terkait dengannya.

Terakhir, perhatikan bahwa ketika Anda melakukan export default , file apa pun yang diimpor yang ekspor defaultnya dapat memberikan nama apa pun yang diinginkannya ke variabel lokal, sama seperti bagaimana definisi fungsi dapat memberi nama parameter sesuatu yang berbeda dari nama variabel apa pun yang digunakan di situs panggilan. Contoh:

function someFunction(a, fred, randomVariableName) {}

const firstVariable = 1;
const theMeaningOfLife = 42;
const aTotallyUselessName = "Whatever";

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

Perhatikan bagaimana nama variabel yang saya definisikan di luar fungsi tidak harus memiliki korespondensi dengan nama parameter di dalam fungsi.

Demikian pula, saat mengekspor:

// fileA.js
export default const aThing = 42;

// fileB.js
import iCanGiveThisAnyNameIWant from "fileA";

@markerikson Terima kasih atas jawaban yang bagus ini.

Terima kasih banyak @markerikson.

Saya belajar Redux untuk digunakan dengan JQuery, tanpa pengetahuan tentang React. Jawaban Anda sekarang membantu saya untuk lebih memahami contoh dengan kode Bereaksi.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

mordrax picture mordrax  ·  51Komentar

nickknw picture nickknw  ·  71Komentar

markerikson picture markerikson  ·  44Komentar

ronag picture ronag  ·  46Komentar

timdorr picture timdorr  ·  56Komentar