Reactjs 从另一个组件初始化组件的状态并获取状态值
我不熟悉reactnative/js的异步机制,我读了很多类似的例子,但我并不清楚。所以请在这里找到我的问题 我试图创建一个组件(在示例“锚定”中调用),并从另一个组件更新其状态(name参数)。 我想从父组件获取“锚定”组件的属性state.name值。 我的问题如下: -锚定组件的创建似乎无法处理组件创建的props.name参数 -我不知道如何从父组件(示例中的应用程序)访问组件状态参数值(his.state.name) 锚组件Reactjs 从另一个组件初始化组件的状态并获取状态值,reactjs,react-native,Reactjs,React Native,我不熟悉reactnative/js的异步机制,我读了很多类似的例子,但我并不清楚。所以请在这里找到我的问题 我试图创建一个组件(在示例“锚定”中调用),并从另一个组件更新其状态(name参数)。 我想从父组件获取“锚定”组件的属性state.name值。 我的问题如下: -锚定组件的创建似乎无法处理组件创建的props.name参数 -我不知道如何从父组件(示例中的应用程序)访问组件状态参数值(his.state.name) 锚组件 class Anchor extends React.Co
class Anchor extends React.Component{
constructor(props) {
super(props)
this.state = {
name : props.name
}
this.name = this.state.name;
}
/*
getName(){
return this.state.name;
}
*/
}
和应用程序组件:
class App extends React.Component <any> {
constructor(props) {
super(props)
this.state = {
anchor : undefined,
items: [
{ text: "Learn JavaScript", done: false },
{ text: "Learn React", done: false },
{ text: "Play around in JSFiddle", done: true },
{ text: "Build something awesome", done: true }
]
}
}
addAnchor(){
var anchor = new Anchor('hello');
this.setState({
anchor : anchor,
});
console.debug('get my anchor name: '+ this.state.anchor.name);
}
render() {
return (
<div>
<h2>Todos:</h2>
{this.state.anchor.name}
<ol>
{this.state.items.map(item => (
<li key={item.id}>
<label>
<input type="checkbox" disabled readOnly checked={item.done} />
<span className={item.done ? "done" : ""}>{item.text}</span>
</label>
</li>
))}
</ol>
</div>
)}
}
类应用程序扩展了React.Component{
建造师(道具){
超级(道具)
此.state={
主播:未定义,
项目:[
{text:“学习JavaScript”,完成:false},
{文本:“学习反应”,完成:错误},
{text:“在JSFiddle中玩”,完成:true},
{文本:“构建一些很棒的东西”,完成:真的}
]
}
}
addAnchor(){
var-anchor=新锚(“你好”);
这是我的国家({
主播:主播,
});
调试('get my anchor name:'+this.state.anchor.name);
}
render(){
返回(
待办事项:
{this.state.anchor.name}
{this.state.items.map(item=>(
{item.text}
))}
)}
}
以防您想要操纵组件,例如一些简单的POJO
那么试试这个:
类锚扩展React.Component{
render(){
返回(
名称:{this.props.Name}
);
}
}
类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
姓名:'你好',
项目:[
{text:'Learn JavaScript',done:false},
{文本:'Learn React',done:false},
{text:'Play around in JSFiddle',done:true},
{文本:'构建一些很棒的东西',完成:真的}
]
};
}
addAnchor(){
const anchor=React.createElement('anchor',{name:this.state.name}',);
console.log(anchor.props.name);
}
render(){
返回(
待办事项:
{this.state.items.map(item=>(
{item.text}
))}
);
}
}
ReactDOM.render(,document.querySelector(#app))
不使用道具初始化状态。我还尝试使用其他函数更新状态(调用SetState),但不起作用。将父状态作为道具传递。。。。然后再传一个道具。。。。函数。这里有一个例子this.setState({name:newName})}/>
在锚点内部使用this,如下所示this.props.name
访问名称,以及this.props.changeName(“示例”)
将名称更改为example我将尝试一下。在我的项目中,我有一些不需要任何呈现或HTML表示的特定算法。实际上,为此,我想操纵一些组件,比如一些简单的POJO。有没有办法在render?thks之外执行此操作?但是createElement将创建一个与我的锚组件无关的对象元素。使用此解决方案,我无法从原始的锚组件调用某些方法,例如:Anchor.getName()?哦,我现在明白了!那你为什么不创建一个普通的Javascript类呢?你把重点放在了正确的解决方案上!我不确定是否使用带有React Native的简单Javascript类,因为没有关于这方面的文档(我假设只有组件…)。好吧,它起作用了!