请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于加载更多 list 的问题

immutable 好像对第二个 json 文件没起作用。点击更多内容后报错 item.get is not a function.

// actionCreators.js
import axios from ‘axios’;
import *as constants from ‘./constants’;
import { fromJS } from ‘immutable’;

const changeHomeData = (result) => ({
type: constants.CHANGE_HOME_DATA,
topicList: result.topicList,
articalList: result.articalList,
recommendList: result.recommendList
})

const addHomeList = (list) => ({
type: constants.ADD_HOME_DATA,
list: fromJS(list)
})

export const getHomeInfo = () => {
return (dispatch) => {
axios.get(’/api/home.json’).then((res) => {
const result = res.data.data;
dispatch(changeHomeData(result));
})
}
}

export const getMoreList = () => {
return (dispatch) => {
console.log(‘click’)
axios.get(’/api/homelist.json’).then((res) => {
const result = res.data.data;
// console.log(result);
dispatch(addHomeList(result));
})
}
}

-------------------------
// list.js
class List extends Component {
render() {
const { list, getMoreList } = this.props;
return (


{
list.map((item) => (
<ListItem key={item.get(‘id’)}>
<img
alt=""
className="pic"
src={item.get(‘imgUrl’)}
/>

{item.get(‘title’)}


{item.get(‘desc’)}




))
}
更多内容

)
}
}


// 报错提示
图片描述

正在回答 回答被采纳积分+3

1回答

Dell 2021-01-02 11:18:49

你在render里面,先打印一下list,看下结果

1 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕神1362405 #1
    找到问题了,点击加载更多,打印 list ,list 并没有增加,redux devtools  中的 articalList 也没有按顺序增加。原因是忘记删掉 新增模拟数据中除了 articalList 其他的列表数据了。 谢谢老师
    回复 有任何疑惑可以回复我~ 2021-01-02 14:01:43
  • Dell 回复 提问者 weixin_慕神1362405 #2
    好的!
    回复 有任何疑惑可以回复我~ 2021-01-03 16:55:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信