Я пытаюсь перенастроить приложение-клон PixaBay на Redux.Приложение устанавливает для состояния searchText значение ввода, затем запускает обратный вызов GET-запроса Axios по мере того, как пользователь вводит текст для поиска, после чего изображения извлекаются.
Я получил ошибку синтаксического анализа на моем редукторе, но я не понимаю ошибку, так как считаю, что код правильный.Может ли кто-нибудь любезно помочь мне решить проблему?Спасибо!
КОНТЕЙНЕР
import React, { Component } from 'react';
import { fetchPhotos } from '../actions/actions';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import TextField from 'material-ui/TextField';
import ImageResults from '../imageResults/ImageResults';
class Search extends Component {
FetchPhotosHandler = (e) => {
this.props.fetchPhotos(e);
}
render() {
console.log(this.props.images);
return (
<div>
<TextField
name="searchText"
value={this.props.searchText}
onChange={this.FetchPhotosHandler}
floatingLabelText="Search for photos"
fullWidth={true} />
<br />
{this.props.images.length > 0 ? (<ImageResults images={this.props.images} />) : null}
</div>
);
}
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ fetchPhotos, dispatch});
}
export default connect(null, mapDispatchToProps)(Search);
АКЦИЯ
import axios from 'axios';
export const FETCH_PHOTOS = 'FETCH_PHOTOS';
const ROOT_URL = 'https://pixabay.com/api';
const API_KEY = 'my_api_key';
const searchText = '';
export function fetchPhotos(e) {
const url = `${ROOT_URL}/?key=${API_KEY}&q=${searchText}&image_type=photo`;
const request = this.setState({searchText: e.target.value}, () => {
axios.get(url)
.then(response => {
this.setState({images: response.data.hits});
})
.catch(error => {
console.log(error)
});
});
return {
type: FETCH_PHOTOS,
payload: request
};
}
РЕДУКТОР
import { FETCH_PHOTOS } from '../actions/actions';
const initialState = {
searchText: '',
images: []
}
const reducer = (state = initialState, action) => {
switch(action.type) {
case FETCH_PHOTOS:
return {
...state,
action.data.hits
};
default:
return state;
}
}
export default reducer;
ОШИБКА
./src/reducers/reducer.js
Line 16: Parsing error: Unexpected token, expected ","
14 | return {
15 | ...state,
> 16 | action.data.hits
| ^
17 | };
18 | default:
19 | return state;