我是新的建設用戶界面的反應(方式),也與FP有點爭執。 基本上,我想知道如果使用curried函數來延遲綁定事件與字段是一個很好的做法,並且有任何性能影響。ReactJS咖喱的功能,以延遲事件綁定
對於EG: 我有一組帖子,每個帖子都有一個評論框,用戶可以在該帖子上發表評論。因此,我們需要在帖子和相關評論中爲該帖子在我的活動Hanlder中進行評論只是一個功能。 檢查工作的代碼示例在CodePen: Event Binding
/*
* A simple React component
*/
class Application extends React.Component {
constructor(props){
super(props)
console.log(props)
this.state = {
posts:['post1', 'post2', 'post3']
}
}
render() {
return (
<div>
<ul>
{ this.state.posts.map(
(post, i) => {
return (
<PostSingle post = {post} index = {i} bindPost = {this.props.post(post)}/>
)
}
) }
</ul>
</div>
)
}
}
const PostSingle = ({post, index,bindPost}) => {
let handlePostComment =() => {
return bindPost(null)
}
return (
<div>
<li key={index}>
<input onChange = {
(e) => {
let value = e.target.value
handlePostComment =() => {
return bindPost(value)
}
}
}></input>
<button onClick={() => {handlePostComment()}}>Comment</button>
<p key={index}>{post}</p>
</li>
</div>
)
}
/*
* Render the above component into the div#app
*/
const PostComment = post => comment => {
alert(`You commented ${comment} for ${post}`)
}
ReactDOM.render(<Application post={PostComment}/>, document.getElementById('app'));
所以基本上PostComment功能在咖喱的方式獲取屬性作爲被創建的對象的時候。 除了在Redux教程中,我找不到這些例子。 在實際應用中,可以使用Redux的mapDispatchToProps()中的道具將事件傳遞給主要組件。
您的想法和意見將不勝感激。