我想使用反应评级(https://gist.github.com/wen-long/8644243)来实施图书评论页面,并添加
<Rating />
在我自己的组件中,我能够在页面上显示评级元素,但我不知道如何在此页面上提供onChage事件和onClick事件。我的代码现在是这样的。
var Rating = require('react-rating');
class BookPage extends Component {
handleRate(rate) {
"use strict";
console.log("the rate is:"+rate);
}
render() {
book = this.props.document;
console.log("book:"+book)
//console.log(util.inspect(book, false, null));
return (
<div className="BookPage">
<div style={{maxWidth: "300px"}}>
<Accounts.ui.LoginForm />
</div>
<FlashContainer component={FlashMessages}/>
<BookItem book={book}/>
<Rating /> // how to add events ?
<div className="comments-thread">
<h4 className="comments-thread-title">BookPosts</h4>
<ListContainer
collection={Posts}
publication="bookPosts.list"
terms={{book_id: book._id}}
limit={5}
joins={Posts.getJoins()}
component={BookPostsList}
/>
</div>
</div>
)
}
}
答案 0 :(得分:0)
@azium评论正确。您需要传递一个期望rate
作为参数的函数。
您得到的错误是因为您传递给onClick
属性的函数未使用rating
参数,而是使用未定义的参数(rate
)。试试这个:
<Rating onClick={rate => this.handleRate(rate)} />
现在反应评级提供了三个callbacks:
onChange
更改所选费率时调用。onClick
点击费率时调用。onRate
输入或退出费率时调用。所有这些都接受相同类型的功能:
function (rate) {
console.log(rate);
}
或使用箭头功能:
rate => console.log(rate);