Razzle: Redux μ˜ˆμ œμ—λŠ” κ³΅κΈ‰μž HMR κ²½κ³ κ°€ μžˆμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 10μ›” 06일  Β·  5μ½”λ©˜νŠΈ  Β·  좜처: jaredpalmer/razzle

μž¬μƒμ‚°, μžμ‹ 클둠.
cd 예제/redux 포함
μ‹€
μ‹€ μ‹œμž‘

그런 λ‹€μŒ common/components/Counter.js와 같은 νŒŒμΌμ„ λ³€κ²½ν•˜λ©΄ HMR이 μž‘λ™ν•˜μ§€λ§Œ λΈŒλΌμš°μ €μ—μ„œ λ‹€μŒ κ²½κ³ κ°€ μšΈλ¦½λ‹ˆλ‹€.

<Provider> does not support changing store on the fly. It is most likely that you see this error 
because you updated to Redux 2.x and React Redux 2.x which no longer hot reload reducers 
automatically. See https://github.com/reactjs/react-redux/releases/tag/v2.0.0 for the migration instructions.

λ‚˜λŠ” 이 였λ₯˜μ— λŒ€ν•΄ ꡬ글링을 μ‹œλ„ν–ˆμ§€λ§Œ 그것에 λŒ€ν•œ μ–΄λ–€ μ‹ν’ˆ μ†”λ£¨μ…˜λ„ 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ 이것을 극볡 ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

key={Math.random()} μ†Œν’ˆμ„ <Provider> ν•©λ‹ˆλ‹€. 이 κ²½κ³ λ₯Ό μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λͺ¨λ“  5 λŒ“κΈ€

client.js νŒŒμΌμ— λ‹€μŒ μ½”λ“œλ₯Ό μΆ”κ°€ν•˜κ³  κ²½κ³ λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

if (module.hot) {
  module.hot.accept();
  module.hot.accept('./App', () => {
    hydrate(
      <Provider store={store}>
        <BrowserRouter>
          <App />
        </BrowserRouter>
      </Provider>,
      document.getElementById('app')
    );
  });
}

λˆ„κ΅¬λ“ μ§€ 이것에 λŒ€ν•΄ μ–΄λ–€ 견해λ₯Ό 가지고 μžˆμŠ΅λ‹ˆκΉŒ?

PR을 μ œμΆœν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

key={Math.random()} μ†Œν’ˆμ„ <Provider> ν•©λ‹ˆλ‹€. 이 κ²½κ³ λ₯Ό μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

@howardya 의 μ†”λ£¨μ…˜μ΄ 여기에 더 μ’‹μŠ΅λ‹ˆλ‹€. μž„μ˜ ν‚€λ₯Ό μ‚¬μš©ν•˜λ©΄ κ²½κ³ κ°€ λ¬΄μ‹œλ˜μ§€λ§Œ μ§€μ›λ˜μ§€ μ•ŠλŠ” μ—…λ°μ΄νŠΈλ§ˆλ‹€ μ €μž₯μ†Œκ°€ λ‹€μ‹œ μƒμ„±λœλ‹€λŠ” 사싀은 λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 특히 redux dev-tools λ˜λŠ” 이와 μœ μ‚¬ν•œ 것을 μ‚¬μš©ν•˜λŠ” 경우 μ΄μƒν•œ λ™μž‘μœΌλ‘œ μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

./App λͺ¨λ“ˆμ„ ꡬ체적으둜 μ²˜λ¦¬ν•˜λ©΄ 이미 λ³„λ„λ‘œ μ²˜λ¦¬λ˜λŠ” 감속기λ₯Ό μ œμ™Έν•œ 거의 λͺ¨λ“  μ—…λ°μ΄νŠΈλ₯Ό ν¬μ°©ν•©λ‹ˆλ‹€. 그러면 configureStore.js 및 client/index.js μžμ²΄μ— λŒ€ν•œ λ³€κ²½ 사항이 μ²˜λ¦¬λ˜μ§€ μ•Šμ€ μƒνƒœλ‘œ λ‚¨μŠ΅λ‹ˆλ‹€. catch-all을 κ·ΈλŒ€λ‘œ 두어 λͺ¨λ“  것을 λ‹€μ‹œ μ‹€ν–‰ν•˜κ³  μ—¬μ „νžˆ κ²½κ³ λ₯Ό λ°œμƒμ‹œν‚€κ±°λ‚˜ μ œκ±°ν•˜μ—¬ νŽ˜μ΄μ§€λ₯Ό λ‹€μ‹œ λ‘œλ“œν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” ν›„μžκ°€ μ—¬κΈ°μ—μ„œ 더 μ •ν™•ν•  것이라고 μƒκ°ν•œλ‹€.

이λ₯Ό μœ„ν•΄ PR을 μž‘μ„±ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

key={Math.random()} μ†Œν’ˆμ„ <Provider> ν•©λ‹ˆλ‹€. 이 κ²½κ³ λ₯Ό μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‚΄ 문제λ₯Ό ν•΄κ²°! κ³ λ§ˆμ›Œμš”.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰