我在教自己p / react,我不确定为什么我无法访问组件的状态。
我有一个组件:
const AView = (state,props) => (
<div>
<p>{state.a}</p>
<B />
</div>
)
class A extends Component {
constructor() {
super();
this.state = { a: 1 };
}
render(props,state) {
return <AView a={state.a}/>
}
}
const BView = (state,props) => (
<div>
<p>{state.b}</p>
</div>
)
class B extends Component {
constructor() {
super();
this.state = { b: 2 };
}
render(props,state) {
return <BView b={state.b}/>
}
}
这会使组件A
呈现预期状态1
,但它不会使组件B
呈现状态2
(组件B
只是呈现为空<p>
代码。)
但是,如果我使用替代语法,我可以使用状态B
呈现组件2
:
class B extends Component {
...
render(props,state) {
return BView(props,state);
}
}
我在这里概念性地遗漏了一些东西,还是只有一些我不知道的语法?我试过谷歌搜索,但我真的不知道足够的术语来获得相关的搜索命中率。
答案 0 :(得分:1)
不确定Preact。但我会尝试解决这个问题:
const AView = (props) => (
<div>
<p>{props.text}</p>
<BView />
</div>
)
class A extends Component {
constructor() {
super();
this.state = { a: 1 };
}
render() {
return <AView text={this.state.a} />
}
}
const BView = (props) => (
<div>
<p>{props.text}</p>
</div>
)
class B extends Component {
constructor(props) {
super(props);
this.state = { b: 2 };
}
render() {
return <BView text={this.state.b} />
}
}