Redux: Как Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ дСйствия Π±Π΅Π· использования @connect?

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 30 июл. 2015  Β·  32ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: reduxjs/redux

Π£ мСня Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния (URL, Ρ€Π°Π·ΠΌΠ΅Ρ€) Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ

@connect(state => ({
  header: state.header
}))
export default class HeaderContainer extends Component {
 /// pass props.header data to child Header which renders image.
}

Π—Π°Ρ‚Π΅ΠΌ Ρƒ мСня Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ дСйствия Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Он Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ состояниС, ΠΎΠ½ просто запускаСт дСйствия. Afaik ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

const { dispatch } = this.props
const actions = bindActionCreators(headerActions, dispatch)

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ this.props.dispatch каТСтся доступным Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ использовании Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° @connect . Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ интСрСсуСтся состояниСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. МнС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь connect ΠΈΠ»ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ дСйствия? ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ @connect, Ссли я Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π΄Π°Π½Π½Ρ‹Π΅.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ dispatch этому ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠ°ΠΊ ΠΎΠΏΠΎΡ€Ρƒ.

ВсС 32 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ это Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉΒ» способ ΠΈΠ»ΠΈ Π½Π΅Ρ‚, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρƒ Ρ‡Π΅Ρ€Π΅Π· контСкст. Π‘ΠΌ., НапримСр, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Connector :
https://github.com/gaearon/react-redux/blob/master/src/components/createConnector.js

Π― Π½Π΅ слСТу Π·Π° Ρ‚ΠΎΠ±ΠΎΠΉ. Π― ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ доступ ΠΊ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ @connect. Π― ΠΈΡ‰Ρƒ способ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ / Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ дСйствия Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π±Π΅Π· использования @connect.

Ѐункция dispatch - это ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°. Если ΠΎΠ½ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π² вашСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅, Π½ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ @connect , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Ρ‡Π΅Ρ€Π΅Π· контСкст ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ:

class MyComponent extends Compoenent {
    static contextTypes = {
        store: React.PropTypes.object.isRequired,
    }

    render() {
         const { dispatch } = this.context.store
         const actions = bindActionCreators(headerActions, dispatch)
    }
}

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ дСйствиС, ΡƒΠΆΠ΅ связанноС с ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ. Π’Π°ΠΊ я ΡΡ‡ΠΈΡ‚Π°ΡŽ, контСкст Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, хотя это ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ.

Бпасибо, Ρ‡Ρ‚ΠΎ объяснили это! Π― понял Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ dispatch этому ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠ°ΠΊ ΠΎΠΏΠΎΡ€Ρƒ.

Π― Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ·Π°Π΄Π°Ρ‡Π΅Π½ этим вопросом.

Если я ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понимаю, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ dispatch доступноС Ρ‡Π΅Ρ€Π΅Π· props ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ дСйствия ΠΈΠ· этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°), Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ создатСлям дСйствий, ΡƒΠΆΠ΅ привязанным ΠΊ dispatch , ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Но ΠΎΠ±Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ наличия Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° connect ed, Ρ‡Ρ‚ΠΎΠ±Ρ‹ диспСтчСризация Π±Ρ‹Π»Π° доступна Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ свойства.

Π˜Ρ‚Π°ΠΊ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΌΡ‹ просто пСрСносим Π½Π°ΡˆΡƒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ dispatch Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. И ΠΊΠ°ΠΊ Π±Ρ‹ Π²Ρ‹ это сдСлали, Ссли Ρ‚Π°ΠΊΠΎΠ³ΠΎ родитСля connect ed Π½Π΅Ρ‚?

НапримСр, Ρ‡Ρ‚ΠΎ, Ссли Π±Ρ‹ ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π² Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

Provider
  Router
    AppContainer
     ...
       ...
         ...
           TheComponentThatNeedDispatch

Π° Ссли Π½ΠΈΠΊΠΎΠΌΡƒ ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ?

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ диспСтчСризации для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² качСствС ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ эффСкта ΠΎΡ‚ использования connect ΠΏΠΎΡ…ΠΎΠΆΠ΅, ставит нас Π² ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ являСтся connect ed. ΠΌΠΎΠΆΠ΅Ρ‚ dispatch дСйствиС. Π­Ρ‚ΠΎ каТСтся странным, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ коррСляции ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ dispatch дСйствиС ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ connect для чтСния ΠΈΠ· состояния redux.

Π― знаю, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ dispatch ΠΈΠ· контСкста ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (Ρ‡Π΅Ρ€Π΅Π· store.dispatch ), Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π½Π΅ рСкомСндуСтся ...

Π§Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΎΠ± этом?

Благодаря!

Π­Ρ‚ΠΎ каТСтся странным, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ коррСляции ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ дСйствиС ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ соСдинСниС для чтСния ΠΈΠ· состояния redux.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это странно? Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ connect ΠΊΠ°ΠΊ ΠΎ Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ ReduxΒ», Π° Π½Π΅ просто ΠΎ Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ части состояния ReduxΒ». Π’ΠΎΠ³Π΄Π° это ΠΈΠΌΠ΅Π΅Ρ‚ смысл: Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ dispatch Π»ΠΈΠ±ΠΎ сам ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π»ΠΈΠ±ΠΎ Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ connect() ed для Redux.

Π‘ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ React Redux API Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Redux Π±Π΅Π· Π²Ρ‹Π±ΠΎΡ€Π° состояния. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ connect(state => ({}))(MyComponent) (Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ пустой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚). Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ для Π½Π΅Π³ΠΎ dispatch пСрвоклассным Π³Ρ€Π°ΠΆΠ΄Π°Π½ΠΈΠ½ΠΎΠΌ, ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ API для Π·Π°Ρ…Π²Π°Ρ‚Π° Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ dispatch Β».

Π˜ΠΌΠ΅Π΅Ρ‚ Π»ΠΈ это смысл?

Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ ΠΎ Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ ReduxΒ», Π° Π½Π΅ просто Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ части состояния ReduxΒ».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ это ΠΈΠΌΠ΅Π΅Ρ‚ смысл :).

НС ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ API .

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ спасибо, использованиС Redux - это блаТСнство!

Π­Ρ‚ΠΎ доступно Π½Π° https://github.com/gaearon/react-redux/releases/tag/v0.5.0.

Выглядит ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ!

@gaearon, эй, Дэн, моТСшь Π΄Π°Ρ‚ΡŒ ΠΌΠ½Π΅ совСт ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ bindActionCreators с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ:

"AddProduct" - ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ redux (см. НиТС)
__ "Бписок Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²"
____ Β«ProductViewΒ».

Π― Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ProductView ΠΌΠΎΠ³Π»Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π³Π»Π°Π²Π½ΠΎΠΌ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Β» Π΅ΡΡ‚ΡŒ:

function appState(state) {
    return {...};
}

export default connect(appState)(AddProduct)

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈΠ±ΠΎ connect() Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π»ΠΈΠ±ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ dispatch Π² качСствС ΠΎΠΏΠΎΡ€Ρ‹.

спасибо Дэн, ΠΎΡ‡Π΅Π½ΡŒ Ρ†Π΅Π½ΡŽ Π²Π°ΡˆΡƒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ. Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ люблю redux!

Π΄Ρ€ΡƒΠ³ΠΎΠΉ вопрос, Ссли ΠΌΠΎΠΆΠ½ΠΎ:
ΠœΠΎΠ³Ρƒ Π»ΠΈ я Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ запросы Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ сСрвСрного API ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ самого Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π°?
ΠΊΠΎΠ³Π΄Π° я ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ сообщСниС Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (mongodb), элСмСнт ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Β«_idΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² ΠΌΠΎΠ΅ΠΌ состоянии redux. слСдуСт Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π² качСствС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° для запроса POST?

Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ вас

ΠœΠΎΠ³Ρƒ Π»ΠΈ я Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ запросы Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ сСрвСрного API ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ самого Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π°?

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅Ρ‚, Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ чистыми функциями Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов.

ΠΊΠΎΠ³Π΄Π° я ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ сообщСниС Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (mongodb), элСмСнт ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Β«_idΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² ΠΌΠΎΠ΅ΠΌ состоянии redux. слСдуСт Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π² качСствС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° для запроса POST?

Π”Π°.

Π‘ΠΌ. Π­Ρ‚ΠΎ руководство: http://rackt.github.io/redux/docs/advanced/AsyncActions.html

спасибо Дэн, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (Ρƒ)

Ссли я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ сСрвСрный Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³, скаТСм, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ вошСл Π² систСму,
ΠœΠΎΠ³Ρƒ Π»ΠΈ я ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° сСрвСрС?

Если я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ сСрвСрный Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³, скаТСм, для Π²Ρ…ΠΎΠ΄Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² систСму, ΠΌΠΎΠ³Ρƒ Π»ΠΈ я ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° сСрвСрС?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° сСрвСрС, Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ асинхронных дСйствий ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³.
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ http://rackt.github.io/redux/docs/recipes/ServerRendering.html.

Π―, вСроятно, ΡƒΠΏΡƒΡΠΊΠ°ΡŽ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅, Π½ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ просто Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ частично ΠΊΠΎ всСм создатСлям дСйствий Π²ΠΎ врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния? Π’ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π·Π²ΠΎΠ½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π½Π΅ бСспокоясь ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ.

@mpoisot : ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ _ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ_ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ создатСля дСйствий ΠΏΡ€ΠΈ запускС прилоТСния. Помимо ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, это Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² Ρ‚Π°ΠΊΠΈΡ… ситуациях, ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

@markerikson МнС ΡƒΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ всС Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния, поэтому я ΠΌΠΎΠ³Ρƒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ createStore . Π― ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ, ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ bindAllActionCreators(store.dispatch) Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС.

ΠŸΡ€Π°Π²Π΄Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС ΠΊΠΎΠ΄Π°, Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π° самом Π΄Π΅Π»Π΅. Но Ссли это Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ бСспокойство, Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ этого. Или Ρ€Π°Π·Π±Π΅ΠΉΡ‚Π΅ свои Π½Π°Π±ΠΎΡ€Ρ‹ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ² (Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ + создатСли дСйствий + сСлСкторы) Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ сфокусированныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Или привяТитС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… создатСлСй дСйствий.

Π•ΡΡ‚ΡŒ Π»ΠΈ Π·Π° это уТасноС сниТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ? Или это ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π²Π΅Π΄Π΅Ρ‚ уТасный ΠΏΡƒΡ‚ΡŒ ΠΊ Π°Π΄Ρƒ кодирования?

@mpoisot : Π½Π° самом Π΄Π΅Π»Π΅ я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Однако это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ тСстирования ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС connect ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π»Π΅Π³ΠΊΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΊ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ зависимостСй. Β«ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π·Π½Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ даСтся нСкоторая функция Π² качСствС ΠΎΠΏΠΎΡ€Ρ‹, ΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. На самом Π΄Π΅Π»Π΅ Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠ΅Ρ‚, Π±Ρ‹Π» Π»ΠΈ это ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, ΠΈΠ»ΠΈ создатСлСм ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ связанного дСйствия. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ использован простым способом, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ тСстированиС. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ прямого ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ привязкС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΊ этому ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ экзСмпляру ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, поэтому это Π½Π΅ рСкомСндуСтся (согласно часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ вопросам Redux: http://redux.js.org/docs/faq/ StoreSetup.html # store-setup-multiple-store). Если я ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понимаю, ΠΎ Ρ‡Π΅ΠΌ Π²Ρ‹ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅, это практичСски Ρ‚Π° ΠΆΠ΅ ситуация, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ прямом ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρƒ.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, частичноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ диспСтчСра Π² дСйствии создатСлСй Π±Ρ‹Π»ΠΎ Π±Ρ‹ эквивалСнтно ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρƒ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΊΠ°ΠΊ синглтона, Ρ‡Ρ‚ΠΎ Π½Π΅ одобряСтся. Π― попытался ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ, ΠΈ нашСл нСсколько мСст, Π³Π΄Π΅ Дэн Абрамов сказал, Ρ‡Ρ‚ΠΎ одноэлСмСнтный ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π½Π΅ одобряСтся ΠΈΠ·-Π·Π° Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π½Π° сторонС сСрвСра (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ), Π½ΠΎ, ΠΊΠ°ΠΊ Π½ΠΈ странно, ΠΎΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» тСстированиС (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ всС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ дСлаю).

Π§Ρ‚ΠΎ заставляСт мСня Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ одноэлСмСнтный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ для тСстирования? ВмСсто прямого экспорта самого ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· StoreSingleton.getStore() ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Ρ‡Π΅Ρ€Π΅Π· StoreSingleton.setStore() . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния тСстирования Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ привязаны ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ экзСмпляру ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°. Однако я понимаю, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² срСдС ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ сСрвСра.

@mpoisot Π’Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ описали, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Provider / connect. ;)

Часто Ρƒ мСня Π΅ΡΡ‚ΡŒ Β«Ρ‚ΡƒΠΏΠΎΠΉΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ (ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ дСйствиС). Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ я ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽ Π΅Π³ΠΎ Π² connect ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Часто каТСтся, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ глобально доступной рассылки. Для mapStateToProps () Π΅ΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с Provider / connect (). А для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования Β«Π³Π»ΡƒΠΏΡ‹Ρ…Β» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокого порядка.

Но я использовал этот сцСнарий достаточно Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒΡΡ вопросом, ΠΏΠΎΡ‡Π΅ΠΌΡƒ. И, ΠΏΠΎΡ…ΠΎΠΆΠ΅, ΠΎΡ‚Π²Π΅Ρ‚ - Β«Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ смоТСтС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π½Π° сторонС сСрвСра». (ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΏΡ€Π°Π²ΡŒΡ‚Π΅ мСня, Ссли я ошибаюсь).

ΠŸΡ€ΡΠΌΠΎ сСйчас connect() просто Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ dispatch ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Provider , Π½ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ. ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с инструмСнтами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π²Π°ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React Π±Ρ‹Π» источником ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ дСйствия. Или ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способом, взяв Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² контСкстС, ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ² Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π² это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π²Π½ΠΈΠ· ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Если Π²Ρ‹ привязали создатСлСй дСйствий ΠΊ одноэлСмСнтному ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρƒ, Π²Ρ‹ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ dispatch .

Π”Π°, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· экспСримСнтов "ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ / инкапсулированноС состояниС", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π²ΠΈΠ΄Π΅Π», Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ с этим ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ. Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ этой ΠΈΠ΄Π΅ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ всС Π΅Ρ‰Π΅ просто Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ this.context.store ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ dispatch ΠΌΠ΅Ρ€Π΅ нСобходимости.

Π― Π±Ρ‹Π» ΠΏΠΎ ΠΎΠ±Π΅ стороны ΠΎΡ‚ этого -

Π’ ΠΌΠΎΠ΅ΠΌ основном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ рассматриваСм Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠ°ΠΊ синглтон ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ глобально Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ getStore() . ΠœΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π½Π° сторонС сСрвСра. ΠœΡ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Provider ΠΈ connect для mapStateToProps .

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, я создал ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽ ΠΌΠ°Π³Π°Π·ΠΈΠ½ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, @jimbolla ΠΈ @markerikson ) Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ мСста Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈ ΠΎΠ±Π° dispatch ΠΈ getState ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π²ΠΎ всСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ _Π΄ΠΎΠ»ΠΆΠ½Ρ‹_ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊΠΎ всСму ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ (Ρ‡Π΅Ρ€Π΅Π· context ΠΈΠ»ΠΈ props ) ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΌΠΈ.

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Π΅Π³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ, я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ одноэлСмСнтный ΠΌΠ°Π³Π°Π·ΠΈΠ½ ТизнСспособСн, Π½ΠΎ Π»ΠΈΡ‡Π½ΠΎ я постСпСнно ΠΎΡ‚Ρ…ΠΎΠΆΡƒ ΠΎΡ‚ Π½Π΅Π³ΠΎ.

Π”Π° ΡƒΠΆ. Π’Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, _ ΠΌΠΎΠΆΠ΅Ρ‚Π΅_ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠ°ΠΊ доступный синглтон, Π½ΠΎ ΠΎΠ½ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ вас, это Π½Π΅ считаСтся идиоматичСским, ΠΈ я Π½Π΅ Π²ΠΈΠΆΡƒ Π² этом Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… прСимущСств.

Бпасибо, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚Π·Ρ‹Π². ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ссылку, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΡƒ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°?

@mpoisot

Π’ΠΎΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Дэна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° dispatch ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ:

https://github.com/reactjs/redux/issues/822#issuecomment -145271384

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ придСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всю Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π² Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ мотивация.

Π’ частности, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½ dispatch (я Π΅Π³ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»):

wrappeddispatch

Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Π·Π°Ρ…Π²Π°Ρ‚ этого старого сообщСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я столкнулся с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅ΠΉ, ТСлая Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствиС Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

export default class App extends Component {
...
  componentDidMount() {
    //registering event listener
    BackgroundGeolocation.on('location', this.onLocation, this.onError);
  }

  onLocation(location) {
   //wishing to dispatch an action to update variable in store
  }

  render() {
    return (
      <Provider store={store}>
        <AlertProvider>
          <MainNavigator screenProps={{ isConnected: this.state.isConnected }} />
        </AlertProvider>
      </Provider>
    );
  }
}

Насколько я понимаю, я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π² этом ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ просто настраиваСм ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² Provider . Как я ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ дСйствиС Π² ΠΌΠΎΠ΅ΠΌ событии onLocation ?

@isaaclem : Π½Ρƒ, Π² этом ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС Ρƒ вас _do_ Π΅ΡΡ‚ΡŒ ссылка Π½Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ store.dispatch(someAction) .

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ - Ρ€Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структуру вашСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ _inside_ <Provider> выполнял Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ