这是我使用的代码。问题是,一旦后退按钮被禁用,当我单击下一个按钮时,它不会启用。有人能帮我弄清楚我做错了什么吗?
类应用程序扩展React.Component{constructor(props){super(props)this.state={data:[],start:1,disabledNext:false,disabledBack:false
}
}
componentDidMount() {
this.displayImages(this.state.start)
}
displayImages(a){
axios
.get(`https://jsonplaceholder.typicode.com/photos/?_start=${a}&_limit=5`)
.then(res => {
this.setState({
data : res.data
});
})
}
handleBack = () => {
let prev = this.state.start - 5
let disabledBack = false
if (prev <= 1){
prev = 1
disabledBack = true
}
this.setState({ start: prev , disabledBack: disabledBack })
this.displayImages(prev)
};
handleNext = () => {
let newStart = this.state.start + 5
this.setState({ start: newStart })
this.displayImages(newStart)
};
render() {
const { data , disabledBack } = this.state
return(
<div>
{
data.map(item => {
return(
<img src={item.thumbnailUrl} alt="img"/>
)
})
}
<br></br> <br></br>
<button type="button" onClick={this.handleBack} disabled={disabledBack}>Back</button>
<button type="button" onClick={this.handleNext} >Next</button>
</div>
)
}
}
如果你能理解上一个和下一个btn是如何工作的,那么你可以在react中做很多事情。
代码:https://codesandbox.io/s/inventory-progress-u2v90
const App = () => {
const [state, setState] = useState([
{ item: "1", desc: "1", active: true },
{ item: "2", desc: "2", active: false },
{ item: "3", desc: "3", active: false }
]);
const stateIndex = state.findIndex(function (item) {
return item.active;
});
return (
<div>
{state.map((item) => {
return (
<p style={{ backgroundColor: item.active ? "red" : "gray" }}>
{item.desc}
</p>
);
})}
<button
onClick={() => {
stateIndex > 0 &&
setState([
...state.map((item, iIndex) =>
iIndex === stateIndex
? {
...item,
active: false
}
: {
...item,
active:
iIndex ===
stateIndex -
1
? true
: false
}
)
]);
}}
>
Prev
</button>
<button
onClick={() => {
stateIndex + 1 < state.length &&
setState([
...state.map((item, iIndex) =>
iIndex === stateIndex
? {
...item,
active: false
}
: {
...item,
active:
iIndex ===
stateIndex +
1
? true
: false
}
)
]);
}}
>
Next
</button>
</div>
);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
问题内容: 提交表单时,我正在使用jquery $ .post。我想在单击按钮后禁用按钮约5秒钟,以避免多次提交表单。 这是我现在所做的: 我之前使用了fadeIn和fadeOut,但是当我快速测试单击按钮时仍然无法正常工作。我应该怎么做才能实现自己想实现的目标? 问题答案: 您可以这样操作: 或者您可以使用ajax收到响应后正在执行的jQuery 方法: 编辑: 这是一个 3秒钟服务器端响应延迟
问题内容: 我在Django中使用python,我希望重定向用户在注销后单击“后退”按钮时重定向到登录页面。如何实现呢?在哪里写代码? 要测试django管理员是否处理此..i,请先登录django admin ..注销,然后单击“后退”按钮,然后我就可以看到上一页。为什么django管理员无法处理此问题。 这是在django admin中注销的Ccode: 问题答案: 终于找到了解决方案: 这将
我有一个活动,当我的应用程序首次启动时开始(只有一次)。该活动允许用户选择主题。然后当他们按下完成键时,我完成了这项活动。这会将用户引导到主活动。但是当用户按下返回按钮时,它会返回到第一次启动的活动(我使用完成()关闭的活动)。但我想要的是,应用程序应该关闭时,用户按下返回按钮从主活动(总是)。我在两个类中都重写了onBackPress。 这两个类中的onBackPressed方法如下所示: 主活
这显然是我在这里的第一篇文章...好吧,我的问题如下:@android:我有一个用户输入文本的文本编辑器,我通过getText()获取文本,一切正常,但当我按下后退按钮,再次返回到文本编辑器的相同活动并尝试再次获取文本时,它返回空字符串"",尽管文本编辑器视图中显示了不同的文本。会不会是文本编辑仍然与旧的关闭活动“相关或对应”?有什么想法吗? 然后在 AsynckTask 中,我将文本发送到发送,
我正在使用Selenium和Python来自动化上传文件的过程。有一个“上载”按钮,默认情况下禁用,只有在选择要上载的文件时才可单击该按钮。 禁用的HTML按钮是- 按钮可点击后的HTML是- 我正在使用- 但它不工作。我相信这是点击禁用按钮(即使文件被选择,按钮已经变得可点击)。我也试过- 但这会给出一个超时异常。那么我应该怎么做才能在它变得可点击后点击这个按钮。我尝试过一些来自互联网的解决方案
问题内容: 我有这个HTML: 我该如何做这样的事情: 当文本字段为空时,应禁用提交(disabled =“ disabled”)。 在文本字段中键入内容以删除禁用的属性时。 如果文本字段再次变为空(删除了文本),则应再次禁用提交按钮。 我尝试过这样的事情: …但这不起作用。有任何想法吗? 问题答案: 问题在于,仅当焦点从输入移开(例如,有人单击输入或将选项卡移出输入)时,更改事件才会触发。尝试改