приведенный ниже код работает нормально, за исключением чего-то странного, начальный реквизит - пустой объект { photos: {} }
после вызова создателя действия состояние в компоненте выглядит как
{ photos: photos : {...} }
, тогда как я ожидаютолько photos: {...}
Что является причиной этого и как я могу предотвратить создание другого подчиненного свойства в состоянии?
компонент:
import {connect} from 'react-redux'
import {getPhotos} from '../actions'
class Photos extends Component {
constructor(props){
super(props)
}
componentDidMount(){
this.props.getPhotos();
}
invokeFunc= () =>{
this.props.getPhotos();
}
render() {
return (
<div>
<PhotoItem />
<button onClick={()=> this.invokeFunc()} >call action creator</button>
</div>
)
}
}
const mapStateToProps = (state) => {
const {photos} = state;
return {
photos,
}
}
export default connect(mapStateToProps,{getPhotos})(Photos)
создатель действия:
export const getPhotos = () =>{
return async (dispatch) => {
const response = await PhotosApi.get('/photos')
dispatch({
type:"GET_PHOTOS",
payload:response
})
}
}
reducer.js
const photosReducer = (state = {}, action) =>{
if(action.type=="GET_PHOTOS"){
return {...state, photos:action.payload}
}
return state;
}
export default combineReducers({
photos:photosReducer,
})