Redux: ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ bindActionCreators Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² дСйствия?

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

Π£ нас Π΅ΡΡ‚ΡŒ нСсколько мСст Π² нашСм ΠΊΠΎΠ΄Π΅, Π³Π΄Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² связанных дСйствий Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² дСйствия Π² bindActionCreators .

bindActionCreators([SomeActions, OtherActions], dispatch)

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ дСйствия Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны послСдним ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ.

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ распространСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ES7:

bindActionCreators({ ...SomeActions, ...OtherActions }, dispatch)

ΠΈΠ»ΠΈ (Π²Π°Π½ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ES6, трСбуСтся ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ» Object.assign ΠΈΠ»ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Babel)

bindActionCreators(Object.assign({}, SomeActions, OtherActions), dispatch)

ΠΈΠ»ΠΈ (ES5, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ lodash )

var assign = require('lodash/object/assign');

bindActionCreators(assign({}, SomeActions, OtherActions), dispatch)

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ распространСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ES7:

bindActionCreators({ ...SomeActions, ...OtherActions }, dispatch)

ΠΈΠ»ΠΈ (Π²Π°Π½ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ES6, трСбуСтся ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ» Object.assign ΠΈΠ»ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Babel)

bindActionCreators(Object.assign({}, SomeActions, OtherActions), dispatch)

ΠΈΠ»ΠΈ (ES5, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ lodash )

var assign = require('lodash/object/assign');

bindActionCreators(assign({}, SomeActions, OtherActions), dispatch)

А, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ, Ρ‚Π°ΠΊ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΡ‰Π΅. Бпасибо!

πŸ™Œ

Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ! Бпасибо!

Π‘ΡƒΠΏΠ΅Ρ€ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ! :star2:

@gaearon слСдуСт Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ это Π² Ρ€Π°Π·Π΄Π΅Π» совСтов Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ API bindActionCreators ?

ΠŸΡƒΠ»Π»-рСквСст привСтствуСтся :wink:
Π― сСйчас Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, поэтому ΠΌΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅: «Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…, ΠΏΡ€ΠΈΡˆΠ»ΠΈΡ‚Π΅ PRΒ».

НС ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ это ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚, Π½ΠΎ я пытался ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ дСйствия ΠΌΠΎΠ΅Π³ΠΎ прилоТСния ΠΈ дСйствия ΠΈΠ· react-native-router-flux , ΠΈ Π½ΠΈΠΆΠ΅ сработало для мСня.

import * as AppActions from './actions';
import { Actions } from 'react-native-router-flux';

function mapDispatchToProps(dispatch) {
  return { actions: {...bindActionCreators(AppActions , dispatch), ...Actions } };
}

НС ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ это ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚, Π½ΠΎ я пытался ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ дСйствия своСго прилоТСния ΠΈ дСйствия ΠΈΠ· react-native-router-flux, ΠΈ Π½ΠΈΠΆΠ΅ сработало для мСня.

Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Actions ΠΈΠ· react-native-router-flux , каТСтся, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с Redux ΠΈ, вСроятно, Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π² mapDispatchToProps . ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… нСпосрСдствСнно Π² своих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ….

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