当我在组件中有一个组件时
var MySubComponent;
class MyComponent {
...
getChildProps() {
console.log(MySubComponent.props.nameToGet)
}
...
MySubComponent = withCustomAudio(props => {return(<div>...</div>)});
...
render() {
return(...<MySubComponent {...this.props}/>...)
}
...}
在组件渲染之后,我想获取或设置子组件的prop。它返回cant access nameToGet of undefined
传播属性不是我想要的 (https://zhenyong.github.io/react/docs/transferring-props.html)
答案 0 :(得分:0)
不,你不能得到/设置这样的道具。它不是React的方式。您应该阅读有关thinking in React的更多信息。
基本上,如果您要更改child
中的parent
道具,它们应该属于parent
状态,并作为道具传递给孩子。
示例:
import React, {Component} from "react";
class Parent extends Component {
state = {
childProp: "Not changed yet"
}
handleChildPropChange = () => {
this.setState({
childProp: "I changed"
})
}
render() {
return <Child myProp={this.state.childProp} onChangeChildProp={this.handleChildPropChange} />;
}
}
class Child extends Component {
render() {
return (
<div onClick={onChangeChildProp}>{this.props.myProp}</div>
)
}
}