Reactjs:是否可以从另一个Parent's子组件中使用Parent组件属性?
Reactjs:Is it possible to use Parent component property from another Parent's child component
我有一个名为separatefile的文件。jsx中,父组件名为Content,子组件名为child。
separatefile。jsx
import React from 'react';
import Parent from './learning.jsx';
class Content extends React.Component {
constructor() {
super();
this.state = {
finding : 'i am finding'
}
}
render() {
return (
<div>
<Child childprop={this.state.finding}/>
<Parent/>
</div>
);
}
}
class Child extends React.Component {
render() {
return (
<div>
<h2>{this.props.childprop}</h2>
<h1>child class property</h1>
</div>
);
}
}
export default Content;
这是另一个名为learning的文件。在jsx文件中,父组件命名为Parent,子组件命名为Children。
我的问题是,我需要从子组件(分离文件的子组件)访问父组件属性(父组件学习。jsx)。jsx文件)…
learning.jsx
import React from 'react';
class Parent extends React.Component {
constructor() {
super();
this.state = {
searching : 'i will find the solution'
}
}
render() {
return (
<div>
<Children childrenprop={this.state.searching}/>
</div>
);
}
}
class Children extends React.Component {
render() {
return (
<div>
<h2>{this.props.childrenprop}</h2>
</div>
);
}
}
export default Parent;
如果我理解正确的话,您想在Children
组件中使用Parent
的状态?
您可以将其作为props
传递到组件树中,例如:
class Content extends React.Component {
constructor() {
super();
this.state = {
finding : 'i am finding'
}
}
render() {
return (
<div>
<Child childprop={this.state.finding}/>
<Parent finding={this.state.finding} />
</div>
);
}
}
class Parent extends React.Component {
constructor() {
super();
this.state = {
searching : 'i will find the solution'
}
}
render() {
return (
<div>
<Children finding={this.props.finding} childrenprop={this.state.searching}/>
</div>
);
}
}
class Children extends React.Component {
render() {
return (
<div>
<h2>{this.props.childrenprop}</h2>
<div>{this.props.finding}</div>
</div>
);
}
}
这可能不是一个直接的答案,但如果你正在开始一个新的应用程序,我建议你使用Redux与react-redux。
Redux是一个可预测的状态容器。
它可以帮助您编写行为一致的应用程序,运行在不同的环境中(客户端,服务器和本机),并且易于测试。最重要的是,它提供了一个很好的开发人员体验,比如实时代码编辑与时间旅行调试器相结合。
这是一个非常小的库,所以很容易理解一切是如何工作的。这也许能很好地解决你的问题。
Todo app示例
你也可以看看awesome egghead。Redux入门教程
以下是作者Dan Abramov对redux好处的回答
React文档提供了一个答案。
用于两个组件之间的通信亲子关系,您可以设置自己的全局事件系统。订阅componentDidMount()中的事件,取消订阅componentWillUnmount(),并在收到事件时调用setState()。通量模式是一种可能的排列方式。
相关文章:
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- React组件等待所需道具进行渲染
- 如何创建带有插槽的vue js组件预加载程序
- KnockoutJS-组件-多个实例
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在react js中将值从一个组件发送到另一个组件
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- React组件-设置页面标题
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 如何在salesforce aura闪电组件中使用jQuery.val()
- 为react组件传递道具的最佳方式
- [Vue warn]:未能解析组件
- 如何控制组件'的createContent函数被激发
- react组件中的绑定方法
- 如何在react js中移动第二个组件
- ReactJS:在组件"parent"中访问组件
- Reactjs:是否可以从另一个Parent's子组件中使用Parent组件属性?
- 在Aurelia中将操作传递给具有parent's上下文的组件