显示计数器当前值的react组件。
计数器应该从0开始。应该有一个添加1的按钮。还应该有一个减去1的按钮。
我无法理解这个问题,因为我遗漏了什么或一些错误的语法。
const React = require('react');
class Counter extends React.Component{
constructor(...args){
super(...args);
this.state = { counter: 0 };
}
// Your event handlers
cincrement = () => {
this.setState({ counter: this.state.counter+1 });
};
cdecrement = () => {
this.setState({ counter: this.state.counter-1 });
};
render() {
return (
<div>
<h1>{this.state.counter}</h1>
<button type="button" onClick={this.cincrement}>
Decrement
</button>
<button type="button" onClick={this.cdecrement}>
Increment
</button>
</div>
)
}
}
我运行代码时出现的错误
/runner/node_modules/babel core/lib/transformation/file/index。js:590投掷错误^
/home/codewarrior/index.js:意外令牌(16:13)14|//事件处理程序15|
16 | cincrement=()=
React需要绑定事件处理程序。
class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {isToggleOn: true};
// This binding is necessary to make `this` work in the callback
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState(state => ({
isToggleOn: !state.isToggleOn
}));
}
render() {
return (
<button onClick={this.handleClick}>
{this.state.isToggleOn ? 'ON' : 'OFF'}
</button>
);
}
}
ReactDOM.render(
<Toggle />,
document.getElementById('root')
);
避免这种情况的一种方法是在构造函数中定义处理程序:
class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {isToggleOn: true};
// This binding is necessary to make `this` work in the callback
this.handleClick = ev => {
this.setState(prevState => ({
isToggleOn: !prevState.isToggleOn
}));
}
}
render() {
return (
<button onClick={this.handleClick}>
{this.state.isToggleOn ? 'ON' : 'OFF'}
</button>
);
}
}
ReactDOM.render(
<Toggle />,
document.getElementById('root')
);
您的原始代码IIRC需要一个特殊的babel插件才能工作。
似乎您的Babel配置不包括类属性语法
您可以使用普通的原型方法,然后在构造函数中预绑定它们
另外,由于您的下一个状态取决于上一个状态,因此您应该将回调传递给setState
const React = require('react');
class Counter extends React.Component{
constructor(...args){
super(...args);
this.state = { counter: 0 };
this.cincrement = this.cincrement.bind(this);
this.cdecrement= this.cdecrement.bind(this)
}
// Your event handlers
cincrement(){
this.setState(state => ({ counter: state.counter+1 }));
}
cdecrement() {
this.setState(state => ({ counter: state.counter-1 }));
}
render() {
return (
<div>
<h1>{this.state.counter}</h1>
<button type="button" onClick={this.cincrement}>
Decrement
</button>
<button type="button" onClick={this.cdecrement}>
Increment
</button>
</div>
)
}
}
问题内容: 在我的React组件中,我有一个按钮,当单击该按钮时,它会通过AJAX发送一些数据。我只需要第一次发生,即在首次使用后禁用该按钮。 我如何尝试做到这一点: 我认为发生的事情是状态变量没有立即更新,这是React文档所说的预期。 我如何强制按钮被禁用或在单击按钮时立即消失? 问题答案: 您可以做的是单击该按钮后将其禁用,然后将其保留在页面中(不可单击的元素)。 为此,您必须向按钮元素添加
在React组件中,我有一个按钮,用于在单击时通过AJAX发送一些数据。我只需要第一次使用,即在第一次使用后禁用按钮。 我是如何做到这一点的: 我认为发生的是状态变量没有立即更新,React文档说这是预期的。 我如何强制按钮在被点击的瞬间被禁用或完全消失?
我是一个新手,我正在尝试创建一个应用程序来在我的投资组合中使用。本质上,该程序是一个可以访问不同菜单的菜单(json文件:texas_pick.js,Breakth.js…),该程序旨在以按钮的形式显示菜单选项,按钮的详细信息从各自的json文件中检索。我面临的问题是,单击菜单选项时,会检索最后一个菜单项的数据。我将后端编程为只将商品名称和价格推送到数据库,而前端则检索这些数据并将其显示在表上。检
我以编程方式生成了许多按钮(一些按钮用于增加值,而另一些按钮用于减少值),当它们调整的值达到最大值或最小值时,我会禁用这些按钮。(即,当达到最大值时,“增加”按钮被禁用,而当达到最小值时,“减少”按钮被禁用。)除了禁用,我还将按钮状态设置为“按下”,以直观地指示已达到极限值,并且按钮不再工作。 我的按钮onClickListener的'增加'按钮看起来像这样: ClickListeners上相应的
如果我按下呼叫按钮,我会得到一个错误,即出租车没有呼叫,而是转到另一个窗口。 我认为这个错误来自实时数据库。如果你有不同的意见,写下你的答案。 错误:E/AndroidRuntime:致命异常:主进程:com。实例乌兹别克斯坦,PID:8915爪哇。lang.NullPointerException:尝试调用虚拟方法“double android”。地方地方getLatitude()'位于com上
我无法弄清楚每三个条目的like按钮是如何以及为什么被按下的,从我实际按下的like按钮开始,但(幸运的是)只有一个,而且也调用了正确的API。 请帮忙。