当我记录我得到的书的 prop 时,我有点挣扎着得到书的状态:undefined.
有什么建议吗?
import React from 'react';
import { connect } from 'react-redux';
import BookForm from './BookForm';
const EditBook = (props) => {
console.log(props)
return (
<div>
hello
</div>
);
};
const mapStateToProps = (state, props) => {
return {
book: state.books.find((book) => book.id === props.match.params.id)
};
};
export default connect(mapStateToProps)(EditBook);
项目的其余部分在我的Github上:https://github.com/bananafreak/bookshelf
3条答案
按热度按时间huwehgph1#
更新
BookListItem
中的Link
。${id}
前面不需要**:**。* *:**导致问题。在
EditBook
组件中,返回以下内容在
BookForm
constructor
中,从props.book
设置状态hpcdzsge2#
我以前遇到过这样的问题,
===
会失败,因为book.id
和props.match.params.id
的类型不同。params
的值总是字符串--可以尝试parseInt(props.match.params.id)
或==
比较(使用类型强制)。gkl3eglg3#
我终于找到了我的错误所在。
在组件BookListItem中:
在${id}之前,我有冒号{
/edit/:${id}
},因此book.id和props.match.params.id无法匹配