หากระบุownProps
พารามิเตอร์ react-redux จะส่งอุปกรณ์ประกอบฉากที่ส่งผ่านไปยังคอมโพเนนต์ไปยังconnect
ฟังก์ชันของคุณ ดังนั้นหากคุณใช้ส่วนประกอบที่เชื่อมต่อเช่นนี้:
import ConnectedComponent from './containers/ConnectedComponent'
<ConnectedComponent
value="example"
/>
ownProps
ภายในของคุณmapStateToProps
และmapDispatchToProps
ฟังก์ชั่นจะเป็นวัตถุที่:
{ value: 'example' }
และคุณสามารถใช้วัตถุนี้เพื่อตัดสินใจว่าจะคืนอะไรจากฟังก์ชันเหล่านั้น
ตัวอย่างเช่นในคอมโพเนนต์ของบล็อกโพสต์:
export default function BlogPost (props) {
return <div>
<h2>{props.title}</h2>
<p>{props.content}</p>
<button onClick={props.editBlogPost}>Edit</button>
</div>
}
คุณส่งคืนผู้สร้างแอคชั่น Redux ที่ทำอะไรบางอย่างกับโพสต์นั้นได้:
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import BlogPost from './BlogPost.js'
import * as actions from './actions.js'
const mapStateToProps = (state, props) =>
getBlogPostData(state, props.id)
const mapDispatchToProps = (dispatch, props) => bindActionCreators({
editBlogPost: () => actions.editBlogPost(props.id)
}, dispatch)
const BlogPostContainer = connect(mapStateToProps, mapDispatchToProps)(BlogPost)
export default BlogPostContainer
ตอนนี้คุณจะใช้ส่วนประกอบนี้ดังนี้:
import BlogPostContainer from './BlogPostContainer.js'
<BlogPostContainer id={1} />