如何将属性传入childcomponent?
How to pass in property into childcomponent?
我有一个容器,它将名为 'key' 的属性传递给子组件:
import React, {PropTypes} from 'react'
import {connect} from 'react-redux'
import Pack from '../components/Pack/Pack'
const PacksContainer = ({Packs, addToCart}) => (
<div>
{Packs.map(pack =>
<Pack key={pack.id}/>
)}
</div>
)
const mapStateToProps = state => ({
Packs: [{id:1},{id:2}]
})
export default connect(
mapStateToProps
)(PacksContainer)
子组件包如下所示:
import React, { PropTypes } from 'react'
const Pack = ({key}) => (
<div>
{key}
</div>
)
export default Pack
我期待显示 ID,但什么也没有?如何显示来自父级的 ID?
如果您尝试访问 key
道具,您将收到这样的警告:
Warning: Pack: key
is not a prop. Trying to access it will result in undefined
being returned. If you need to access the same value within the child component, you should pass it as a different prop
key
是在创建组件之前由 React 内部控制的东西。考虑到人们可能会意外地重载它或将它用于不相关的事情,它永远不会成为传递给组件的属性之一。
一个好的做法被认为是将标识符作为另一个道具传递,即使它看起来多余。
const PacksContainer = ({Packs, addToCart}) => (
<div>
{Packs.map(pack =>
<Pack id={pack.id} key={pack.id}/>
)}
</div>
)
const Pack = ({id}) => (
<div>
{id}
</div>
)
我有一个容器,它将名为 'key' 的属性传递给子组件:
import React, {PropTypes} from 'react'
import {connect} from 'react-redux'
import Pack from '../components/Pack/Pack'
const PacksContainer = ({Packs, addToCart}) => (
<div>
{Packs.map(pack =>
<Pack key={pack.id}/>
)}
</div>
)
const mapStateToProps = state => ({
Packs: [{id:1},{id:2}]
})
export default connect(
mapStateToProps
)(PacksContainer)
子组件包如下所示:
import React, { PropTypes } from 'react'
const Pack = ({key}) => (
<div>
{key}
</div>
)
export default Pack
我期待显示 ID,但什么也没有?如何显示来自父级的 ID?
如果您尝试访问 key
道具,您将收到这样的警告:
Warning: Pack:
key
is not a prop. Trying to access it will result inundefined
being returned. If you need to access the same value within the child component, you should pass it as a different prop
key
是在创建组件之前由 React 内部控制的东西。考虑到人们可能会意外地重载它或将它用于不相关的事情,它永远不会成为传递给组件的属性之一。
一个好的做法被认为是将标识符作为另一个道具传递,即使它看起来多余。
const PacksContainer = ({Packs, addToCart}) => (
<div>
{Packs.map(pack =>
<Pack id={pack.id} key={pack.id}/>
)}
</div>
)
const Pack = ({id}) => (
<div>
{id}
</div>
)