Gil*_*dar 2 javascript reactjs
我正在使用React,当用户点击<li>标签时,会弹出弹出方法,但是方法中的组件没有显示,弹出组件没有被触发,为什么会这样?
export default class Main extends React.Component {
constructor(props) {
super(props);
}
popup(value) {
console.log('fired ok');
//call popup component
<Popup value={value} />
}
render() {
return (
<ul>
<li key={0} onClick={() => this.popup(value)} />
</ul>
)
}
}
export default class Popup extends React.Component {
constructor(props) {
super(props);
}
render() {
console.log('this is not fired');
const { value } = this.props;
return (
<div class="popup">
<p>{value}</p>
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
你需要实际渲染Popup元素,类似于:
export default class Main extends React.Component {
constructor(props) {
super(props);
// save the popup state
this.state = {
visible: false, // initially set it to be hidden
value: '' // and its content to be empty
};
}
popup(value) {
console.log('fired ok');
this.setState({
visible: true, // set it to be visible
value: value // and its content to be the value
})
}
render() {
// conditionally render the popup element based on current state
const popup = (this.state.visible ? <Popup value={this.state.value} /> : null);
return (
<ul>
{popup}
<li key={0} onClick={() => this.popup('Hello World')}>Click Me!</li>
</ul>
)
}
}
Run Code Online (Sandbox Code Playgroud)
这是它在行动中的一个小提琴.点击黑色"Click Me!" 文本.
我希望有所帮助!
| 归档时间: |
|
| 查看次数: |
6144 次 |
| 最近记录: |