我正在使用ReactJS构建一个非常原始的测验应用程序,但无法更新Questions
组件的状态。它的行为是,questions
尽管在以下方面this.state.questionNumber
始终落后一步,但它仍为DOM提供了正确的数组索引handleContinue()
:
import React from "react"
export default class Questions extends React.Component {
constructor() {
super()
this.state = {
questionNumber: 1
}
}
//when Continue button is clicked
handleContinue() {
if (this.state.questionNumber > 3) {
this.props.unMount()
} else {
this.setState({
questionNumber: this.state.questionNumber + 1
})
this.props.changeHeader("Question " + this.state.questionNumber)
}
}
render() {
const questions = ["blargh?", "blah blah blah?", "how many dogs?"]
return (
<div class="container-fluid text-center">
<h1>{questions[this.state.questionNumber - 1]}</h1>
<button type="button" class="btn btn-primary" onClick={this.handleContinue.bind(this)}>Continue</button>
</div>
)
}
}
setState()
是不必是同步操作:
setState()
不会立即变异,this.state
但会创建待处理的状态转换。this.state
向后进入无法保证对呼叫的同步操作,
setState
并且可以为提高性能而对呼叫进行批量处理。
因此,this.state.questionNumber
此处可能仍保留先前的值:
this.props.changeHeader("Question " + this.state.questionNumber)
相反,请 使用 状态转换完成后调用的回调函数:
this.setState({
questionNumber: this.state.questionNumber + 1
}, () => {
this.props.changeHeader("Question " + this.state.questionNumber)
})
我试图使用React Hooks来管理一个简单的文本输入字段和提交输入按钮的状态。输入字段不断验证(现在只是检查长度 我已将参数扩展为setMuffinSettings,以显式返回一个对象,并已确认此返回对象的顺序为:true。因此,问题与setMuffinSettings本身有关,而不是传递给setMuffinSettings的对象不正确。 我还研究了另外两个与React挂钩(特别是挂钩)和“落
我在React中有各种各样的函数,其中我需要使用useState更改状态,然后根据新状态是否满足某些条件执行一些操作。 当使用prop=“newpassword”调用handleChange时,它使用useState中的setValues方法设置newpassword的值。然后使用正则表达式测试对新密码进行评估,如果它有效,则状态变量passwordIsValid应设置为true。 状态总是比th
问题内容: 我正在从表单组件获取数据,并尝试使用此数据设置应用程序组件的状态。 但是,state.data是一个空对象,不会更新数据。在设置模型数据是否存在之前,我会控制台记录模型数据。他们是模型中的数据。 问题答案: 是React中的异步调用。因此,您不太可能在下一行获得更新的状态值。要在状态更新成功后检查更新后的值,可以签入回调处理程序。 改变这个 至
我得到这个错误,而试图改变阿波罗本地状态。 错误不变冲突:应为已解析的GraphQL文档。也许您需要将查询字符串包装在“gql”标记中?http://docs.apollostack.com/apollo-client/core.html#gql 初始状态 我的突变 我的解析器 我想改变按键的局部状态,功能是 生成数据功能如下 我是阿波罗客户的新手。我不明白我做错了什么。有人能帮我解决这个问题吗?
本文向大家介绍AngularJS改变元素显示状态,包括了AngularJS改变元素显示状态的使用技巧和注意事项,需要的朋友参考一下 前言 本文描述使用AngularJS提供的ng-show和ng-hide指令实现自动监听某布尔型变量来改变元素显示状态。 控制html元素显示和隐藏有n种方法:html的hidden、css的display、jQuery的hide()和show()、bootstrap
本文向大家介绍bootstrap改变按钮加载状态,包括了bootstrap改变按钮加载状态的使用技巧和注意事项,需要的朋友参考一下 bootstrap里面有个激活按钮的时候,按钮变成不可用的; 按照官网里面的方法介绍是在button按钮加个 data-loading-text="Loading..." 属性,然后js总体代码是这样: 其中autocomplete="off"属性是针对FF浏览器在页