我正在使用来自https://jsonplaceholder.typicode.com/users的 axios 进行一些简单的获取,并且我正在使用 redux 来存储应用程序的状态。从 url 上传我想在下拉列表中获取所有名称。但是从 2 天开始就给了我这个错误:
TypeError:无法读取未定义的属性“地图”。
如果您以前看过,现在我将在下面提供一些代码。
这是动作,我认为没关系。
export const getAuthors = () => {
return (dispatch) => {
axios.get('https://jsonplaceholder.typicode.com/users')
.then((response) => {
dispatch({
type: GET_AUTHORS,
payload: response.data
})
})
.catch(e => console.log(e))
}}
这是减速器,我认为这是错误:
export default (state = initialState, action) => {
console.log("ACTION", action.payload);
switch (action.type) {
case GET_AUTHORS:
return {...state, authors: action.payload}
default:
return state;
}
}
这是显示错误的函数组件:
const AddPostModal = ({authors, authorName}) => {
return(
<select
value={authorName}
onChange={handleChangeAuthor}
{
authors.map((author, index) => {
return (
<option key={index}> {author.name} </option>
)
})
</select>
)
}
export default AddPostModal;
下面我们有类组件:
import { getAuthors} from '../../actions/PostActions';
class Post extends React.Component{
constructor(props) {
super(props);
this.state = {
authorName: ''
}
}
render() {
return(
<AddPostModal
authors={this.props.author}
authorName={this.state.authorName}
/>
)
}
}
const mapStateToProps = (state) => {
return {
authors: state.authorName.authors
};
}
const mapDispatchToProps = (dispatch) => (bindActionCreators({
getAuthors: getAuthors,
}, dispatch))
export default connect(mapStateToProps, mapDispatchToProps)(Post);
如果有人有解决方案,请告诉我,因为你会拯救我的一天。非常感谢您提前。