我知道it considered a good practice通过添加g = df.groupby('team').member
g.agg(dict(members=lambda x: list(x), number='count'))
members number
team
A [Mary, Dan] 2
B [John, Dave, Alex] 3
C [Amy] 1
D [Paul] 1
属性命名反应组件,但不知道我知道原因。在反应文档中,它说:
displayName字符串用于调试消息。 JSX自动设置该值;请参阅深度中的JSX。
为什么这么重要?如果我没有添加它将会发生什么? (到目前为止,我没有它,并且没有调试问题)
是否有关于如何命名组件的任何建议/良好实践?
答案 0 :(得分:22)
我始终将displayName
设置为与我分配给它的变量相同的名称。这只会在开发版本中使用,因为它是通过生产版本上的死代码删除而删除的,不应该依赖于您的应用程序。
至于它的使用位置,主要是在反应错误消息传递中。这就是为什么它被提到对调试有价值的原因。如果没有可以派生名称,那么当项目中包含任何超过1个组件时,错误消息默认为Component
,这非常难以调试。
以下是一些在反应源中引用displayName的错误消息:
答案 1 :(得分:1)
这篇文章对我有帮助:
How do I get string name of React Native component class?
class CardGroup extends Component {
render() {
return (
<div>{this.props.children}</div>
)
}
}
CardGroup.propTypes = {
children: function (props, propName, componentName) {
const prop = props[propName]
let error = null
React.Children.forEach(prop, function (child) {
if (child.type !== Card) {
error = new Error('`' + componentName + '` children should be of type `Card`.');
}
})
return error
}
}