Я не уверен, как вы подключаете эту функцию к Redux в React-native, но я думаю, что она работает так же, как вы делаете это с обычным React.
Функция searchRequest
возвращает новую функцию с одной переменной dispatch
. search
будет "статическим" со значением, которое вы передали при вызове searchRequest
, так что, вероятно, null или undefined или какое-то жестко закодированное значение.
Вы должны к этому наоборот:
import {connect} from 'react-redux'
const searchRequest = (dispatch) => {
return async (search) => {
const response = await axios.get(`http://localhost:4000/reports/${search}`)
dispatch(searchInfo(response.data))
}
}
class YourComponent extends Component {
....
onSearch = (search) => {
this.props.doSearch(search)
}
....
}
const mapDispatch = (dispatch) => ({
doSearch: searchRequest(dispatch)
})
export connect(null, mapDispatch)(YourComponent)
Вот как это выглядит с "нормальной сетью" - Реакция. Может быть, на родном это выглядит иначе. Обратите внимание, что отправка предоставляется в качестве параметра один раз. Впоследствии при вызове doSearch
внутри функции используется тот же экземпляр диспетчеризации.