Я не знаю о вашей реализации, но предположим, что у вас есть связанный компонент 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)
});
string path(getenv("WINDIR"));
поместит% WINDIR% в строку std ::. Я ожидаю, что вы можете сделать то же самое с типами Qt.
Возможно, вам лучше использовать стандартные пути Qt http://doc.qt.io/qt-5/qstandardpaths.html . Возиться с% WINDIR% немного опасно.
Qt5 предоставляет несколько функций для извлечения значения, хранящегося в переменной окружения, а именно qgetenv и qEnvironmentVariable .
Как вы, кажется, нацелены на Windows, безопаснее использовать QString qEnvironmentVariable(const char *varName)
QString winDirPath = qEnvironmentVariable("WINDIR");
if (!winDirPath.isNull()) {
// the environment variable WINDIR exists and has been retrieved
} else {
// the environment variable does not exists in this system
}