我刚开始在iOS上使用React native来查看它的感觉,我有一个愚蠢的问题.. 我看到每个人都在谈论" Props",每当我阅读文章或教程时,作者都会使用这个术语,并且在代码中也是如此。例如,在类声明中,我经常看到构造函数,如:
class MyClass extends Component {
constructor(props) {
super(props);
this.state = { message: '' };
}
}
我无法找到道具是什么的明确解释,有人可以启发我吗?
答案 0 :(得分:3)
props是传递给React组件的值。因此,只要你有一个组件,你就会看到类似的东西:
<MyComponent value1={value1} isTrue={true} />
答案 1 :(得分:2)
除了Keith的答案,您可以在下面找到使用“颜色”的非JSX版本。属性。
// Output (JS):
var app = React.createElement(Nav, {color:"blue"});
答案 2 :(得分:1)
React Props是从一个React组件传递到另一个(在组件层次结构中)的只读参数。
假设您有两个组件-应用程序和列表。然后,在App内,我们有一个包含开发人员信息的列表。如果我们想将数组传递给List组件,我们会做类似(<List list={developers} />
)
import React from 'react';
const App = () => {
const developers= [
{
id: 1,
name: 'Randy'
},
{
id: 2,
name: 'Tiago Peres'
},
];
return (
<div>
<h1>Developers in StackOverflow</h1>
<List list={developers} />
</div>
);
};
const List = props =>
props.list.map(item => (
<div key={item.id}>
<span>{item.name}</span>
</div>
));
export default App;
这将是结果
使用此方法,我们不需要在全球范围内拥有太多信息。
如果您想进一步了解它,我建议您阅读great article from Robin Wieruch。
要理解您提到的特定情况,必须了解React的一些基础知识以及ECMAScript 6(ES6)。基于W3Schools's React Tutorial的内容,
extends
关键字。MyClass
的类,该类将继承Component
类的方法。constructor()
方法内部分配super()
方法引用父类,因此执行父组件的构造函数。super()
方法将道具传递给构造函数以及React.Component。super(props)
将调用Component
构造函数,并传入prop作为参数。super()
,使用super(props)
可以确保this.props
甚至在构造函数退出之前就已设置。state
对象仅具有message
属性,您也可以随意设置。this.state.message
。答案 3 :(得分:0)
道具:道具只不过是组件的属性,而react组件只不过是JavaScript函数。道具是一成不变的。您可以在组件之间传递道具。可以将道具从父组件直接传递给子组件。为了从孩子传给父母,您需要使用提升状态的概念。
class Parent extends React.Component{
render()
{`enter code here`
return(
<div>
<Child name = {"Sara"}/>
</div>
);
}
}
class Child extends React.Component{
{
render(){
return(
<div>
{this.props.name}
</div>
);
}
}