【发布时间】:2020-11-19 04:05:55
【问题描述】:
我正在尝试通过直接将道具传递给它来操纵另一个元素,然后让它显示自己。如果我通过true/false.
实时运行代码:
https://codesandbox.io/s/keen-dan-rt0kj
- 我不知道是否有可能拥有一个对象系统,并根据一个事件,告诉父母显示一个孩子。
App.js
import React from "react";
import "./styles.css";
import Content from "./components/Content";
export default class App extends React.Component {
state = {
display: false
};
render() {
return (
<div className="App">
<button onClick={() => this.setState({ display: !this.state.display })}>
Display div
</button>
<Content display={this.state.display} />
</div>
);
}
}
./components/Content.js:
import React from "react";
export default class Content extends React.Component {
constructor(props) {
super();
this.state = {
display: props.display
};
}
render() {
const { display } = this.state;
return (
<div
id="mydiv"
className="mydiv"
style={{ display: display ? "block" : "none" }}
>
<h3>A simple div</h3>
</div>
);
}
}
目标:
我想基于一个状态,并基于触发的事件,显示一个已经存储在root 中的元素。
编辑:我知道,这存在并且可以使用:import PropTypes from 'prop-types',但是,我不确定这是一个好的做法,因为它需要一些父组件或其他一些组件来实现props。
刚刚尝试过:
应用:
<Content display={this.state.display} content={"Hello World"} />
内容:
<h3>{this.state.content}</h3>
看来,存储在内容state = {content: props.content} 中的传入文本确实会显示出来,而boolean 值不能直接工作。发送bool 有什么问题吗?
【问题讨论】:
标签: reactjs