์ ๊ตฌ๋ ํ๋ฉด ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค. ๋ค์์ด ์ข์ ์๊ฐ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
listeners.slice().forEach(listener => listener())
//to
listeners.slice().forEach(listener => listener(action))
๊ฐ์
์๋ ๋ฐ์ํ ์ผ์ด ์๋๋ผ ์๋ก์ด ์ํ์ ๋ฐ์ํด์ผ ํฉ๋๋ค.
์ด๋ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
์ฌ์ฉ์ ์ง์ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ฐธ์กฐ:
https://github.com/rackt/redux/issues/347
https://github.com/rackt/redux/issues/580
์ ๊ฒฝ์ฐ์๋ "๋์คํจ์น"๊ฐ ์๋ฃ๋ ํ ์์
์ด ์๋ฒ๋ก ์ ์ก๋ฉ๋๋ค. ์๋ฒ์๋ ํด๋ผ์ด์ธํธ์ ๋์ผํ Redux ์ ์ฅ์๊ฐ ์์ผ๋ฉฐ ์์
์ ์๋ฒ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ฌ ํด๋ผ์ด์ธํธ ์ํ์ ๋๊ธฐํํฉ๋๋ค.
์ด ๊ฒฝ์ฐ "subscribe listener"์ action ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ๋ฉด ํธ๋ฆฌํฉ๋๋ค.
๋ฌผ๋ก ์ด๊ฒ์ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด "๊ตฌ๋ ์์ ๊ธฐ"์ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ธ ๊ฒฝ์ฐ ๋ ์ข์ ์ ์์ต๋๋ค.
์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๋์ผํ Redux ์ ์ฅ์๋ฅผ ์ค๋นํจ์ผ๋ก์จ ์๋ฒ ์ธก ์ํ ์กฐ์์ด ํด๋ผ์ด์ธํธ์ ๋์ผํด์ง๋๋ค.
์ด ๊ฐ๋ ์์ ์ก์ ์ ์๋ฒ๋ฅผ ํฌํจํ์ฌ ์ฐ๊ฒฐ๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ ๋ฌ๋๋ ์ํ ๋๊ธฐํ ์ฅ์น์ ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ๋ฏธ๋ค์จ์ด์ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ฐ์ ์๋ ๋ฐ์ํ ์ผ์ด ์๋๋ผ ์๋ก์ด ์ํ์ ๋ฐ์ํด์ผ ํฉ๋๋ค.
์ด๋ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
์ฌ์ฉ์ ์ง์ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ฐธ์กฐ:
https://github.com/rackt/redux/issues/347
https://github.com/rackt/redux/issues/580