0
私はreduxアプリケーションを作成することに取り組んでいますが、自分のコンポーネントの1つに作成したメソッドを作成しましたが、そのメソッドにアクセスしていますが、コンソールにアクセスすると、 this.props.selectBookは関数ではありません。私は何が起こっているのか、それができるのか分かりません。this.props.function nameは定義されていません
import React from 'react';
import {connect} from 'react-redux';
import {selectBook} from '../actions/index';
import {bindActionCreators} from 'redux';
class BookList extends React.Component {
renderList() {
return this.props.books.map((book) => {
return (
<li onClick={() => this.props.selectBook(book)} key={book.title} className="list-group-item">{book.title}</li>
);
});
}
render() {
return (
<ul className="list-group col-sm-4">
{this.renderList()}
</ul>
)
}
}
function mapStateToProps(state) {
return {
books: state.books
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({selectBook: selectBook}, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(BookList);
〜アクションクリエータ
あなたのコードの問題は、あなたのactions/index
ファイル内に、あなたはこの構文でselectBookをインポートする必要があり、あなたのコンポーネントを意味するデフォルトのキーワードでselectBookを輸出していることである
export default function selectBook (book) {
return {
type: 'BOOK_SELECTED',
payload: book
}
}