【发布时间】:2018-12-22 18:34:06
【问题描述】:
我尝试调整这个tabs 来做出反应。 这个想法是为使用 handleclick 函数单击的键添加活动类
class Tabs extends React.Component {
constructor(props) {
super(props);
this.state = { selected: 0 };
this.handleClick = this.handleClick.bind(this);
}
handleClick(key, event) {
event.preventDefault();
this.setState({
selected: key
});
}
render() {
var activeClass = this.state.selected === this.props.key ? "active" : "";
return (
<React.Fragment>
<div class="tab">
<button
key="1"
className={"tablinks" + activeClass}
onClick={this.handleClick}
>
London
</button>
<button
key="2"
className={"tablinks" + activeClass}
onClick={this.handleClick}
>
Paris
</button>
<button
key="3"
className={"tablinks" + activeClass}
onClick={this.handleClick}
>
Tokyo
</button>
</div>
<div key="1" className={"tabcontent" + activeClass}>
<h3>London</h3>
<p>London is the capital city of England.</p>
</div>
<div key="2" className={"tabcontent" + activeClass}>
<h3>Paris</h3>
<p>Paris is the capital of France.</p>
</div>
<div key="3" className={"tabcontent" + activeClass}>
<h3>Tokyo</h3>
<p>Tokyo is the capital of Japan.</p>
</div>
</React.Fragment>
);
}
}
ReactDOM.render(<Tabs />, document.querySelector(".container"));
但我得到两个错误:
警告:React.createElement:类型不应为 null、未定义、布尔值或数字。它应该是一个字符串(对于 DOM 元素)或一个 ReactClass(对于复合组件)。检查Tabs的渲染方法。
和
未捕获的错误:不变违规:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。检查Tabs的渲染方法。
【问题讨论】:
标签: javascript reactjs