【发布时间】:2017-08-20 17:55:40
【问题描述】:
import { fetchPosts } from '../actions';
import React, {Component} from 'react';
import {bindActionCreators, dispatch} from 'redux';
import {connect} from 'react-redux';
import PropTypes from 'prop-types';
import map from 'lodash/fp/map';
import flatten from 'lodash/fp/flatten';
import sortBy from 'lodash/fp/sortBy';
import compose from 'lodash/fp/compose';
import take from 'lodash/fp/take';
import _ from 'lodash';
class PostsIndex extends Component {
state = {
posts: []
};
componentDidMount() {
this.props.fetchPosts();
}
displayPosts () {
//console.log(post) works, console.log(post.title) returns undefined.
return _.map(this.props.posts, (post)=>{debugger;console.log(post.title);});
}
render() {
if(this.props.posts.length === 0) {
return (<div>Loading...</div>);
}
return (<ul>{this.displayPosts()}</ul>);
}
}
function mapStateToProps(state) {
return {
posts: (state.posts) ? state.posts : []
};
}
function mapDispatchToProps (dispatch) {
return bindActionCreators({fetchPosts: fetchPosts}, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(PostsIndex);
我可以做console.log(post) in
displayPosts () {
//console.log(post) works, console.log(post.title) returns undefined.
return _.map(this.props.posts, (post)=>{debugger;console.log(post.title);});
}
但如果我尝试 console.log(post.title) 我会得到未定义的结果。
同样,如果我尝试做类似的事情:
displayPosts () {
//console.log(post) works, console.log(post.title) returns undefined.
return _.map(this.props.posts, (post)=>{return <div>post.title</div>;});
}
我什么也得不到。
在这里你可以看到console.log()的结果。 前者来自史诗,后者来自组件。
这里有一个指向我打开的存储库的链接: https://github.com/Deviad/redux-router-playground
【问题讨论】:
标签: reactjs redux rxjs redux-observable