Итак, сначала я должен упомянуть, что я считаю, что у вас неправильное представление о редуксе. Это не позволяет повторно использовать функции, созданные в компонентах, в разных местах. Это делается для того, чтобы переместить эту логику в редуктор за пределы вашей функции, что позволило бы использовать его везде, где вы подключили его к {connect} из response-redux. Так что вам понадобится пара файлов (для ясности). Сначала вам понадобится файл действия, который мы назовем myReturnOkAction.
export const myReturnOkAction = (/*optional payload*/) => {
return {
type: 'PRINT_OK',
}
}
Redux Actions
Это то, что вы собираетесь вызывать в функции mapDispatchToProps, где вы собираетесь запускать это событие. Вам нужно будет импортировать его в ваш OtherComponent, чтобы import {myReturnOkAction} from "/*wherever the files exists*/"
, и включить его в mapDispatchToProps как okFunction: () => dispatch(myReturnOkAction())
После того, как вы выполните действие, ваш connect Компонент высшего порядка (HOC), обертывающий ваш основной компонент, будет нуждаться в редукторе для изменения текущего состояния хранилища, а также для выполнения любых действий.
export const myReturnOkReducer = (state, action) => {
if(action.type === 'PRINT_OK'){
/*This is where you update your global state*/
/*i.e. return {...store, valueWanted: ok}*/
}else{
return state
}
}
Редукторы Redux
Таким образом, способ, которым это будет двигаться, заключается в том, что вы функция, где-то будет вызывать действие. Как только действие вызывается, оно запускает редуктор и вносит любые изменения в нужное вам хранилище. Как только редуктор обновит хранилище новыми значениями, он будет обновлять любые компоненты, которые connect ed к нему через connect HOC, что заставит их повторно выполнить рендеринг с новой информацией.
Также мое любимое изображение, чтобы описать, как работает Redux.
* * 1030
Надеюсь, это поможет.