Отправка вызова Redux из события Socketio

1
задан Ronny vdb 13 July 2018 в 15:23
поделиться

1 ответ

Я не знаю о вашей реализации, но предположим, что у вас есть связанный компонент React, в который вы подключаете свой сокет. Вам нужно отправить _ioDispatch (полезную нагрузку), чтобы он достиг redux и redux-thunk (или того, что вы используете) промежуточного программного обеспечения. Что-то вроде этого:

import React from 'react';
import { connect } from 'react-redux';

class MyComponent extends React.component {
    constructor(props) {
        //create socket and do stuff here..
        socket.on('item created', function(payload){
            console.log("socket on item created")
            props.socketCallback(payload);
        });
    }
}

const mapDispatchToProps = (dispatch) => ({
   socketCallback: (payload) => dispatch(_ioDispatch(payload))
});

export default connect(null, mapDispatchToProps)(MyComponent);

И, кстати, если ваша функция _ioDispatch так же описана:

export const _ioDispatch = (data) => (dispatch, getState ) => {
    console.log("_ioDispatch")
    dispatch(data);
}

Тогда вы могли бы просто удалить ее и изменить mapDispatchToProps на:

const mapDispatchToProps = (dispatch) => ({
   socketCallback: (payload) => dispatch(payload)
});
0
ответ дан Logar 17 August 2018 в 12:31
поделиться
  • 1
    благодаря! Я искал способ сделать это изнутри действия, но я внедрил ваше решение, и оно работает – Ronny vdb 13 July 2018 в 23:12
Другие вопросы по тегам:

Похожие вопросы: