这就是状态变量中的内容
this.state = {
check: 0,
places: ["0","0","0","0","0","0","0","0"],
}
}
我试图做的是调用一个函数来更新一个位置的期望值。例如,我使用的changeValue
函数如下:
changeValue= (event) => {
this.setState({
places[2]: "1",
});
}
它不起作用。我知道我可以传递一个完全更新的数组,但我需要当前状态的其他值。
setState将对象作为参数,键作为状态键。确保传递了正确的密钥以更新状态。
试试这个---
changeValue= (event) => {
this.setState({
places: places.map((item, index) => {
if(index == 2) return 1;
return item;
});
}); }
将此行添加到构造函数中。
this.changeValue = this.changeValue.bind(this);
除了这里的另一个答案之外,您还需要在构造函数中绑定函数以使其工作,特别是当您试图通过来自子对象的回调来处理事件时。
下面是如何获取当前位置数组的其余部分(并复制它以确保不会在setState之外改变状态):
changeValue = (event) => {
const places = this.state.places.slice();
places[2] = '1';
this.setState({ places });
}
在的文档中: setState()不会立即突变this.state但会创建一个挂起的状态转换。调用此方法后访问this.state可能会返回现有值。 第二个(可选)参数是一个回调函数,它将在setState完成并重新呈现组件后执行。 如果我只是想更新我的状态,我会创建一个什么都不做的回调吗?
问题内容: 我有一个称为状态的对象数组。 说我有功能 这里的问题是,每次调用时,整个数组都会更新,因此整个DOM都将重新呈现。在我的情况下,这导致浏览器冻结,因为我几乎每秒都要调用此函数,并且有很多对象。但是,在每次通话中,实际上仅更新其中一个或两个设备。 我有什么选择? 编辑 在我的确切情况下,a 是一个定义如下的对象: 因此,数组中的每个项目都是this的特定瞬间,即我所拥有的某个地方: 我更
问题内容: 如果您将数组作为状态的一部分,并且该数组包含对象,那么通过更改其中一个对象来更新状态的简便方法是什么? 示例,从关于react的教程中修改而来: 问题答案: 在更新状态时,关键部分是将其视为不变。如果可以保证,任何解决方案都可以。 这是我使用immutability-helper的解决方案: jsFiddle:
问题内容: 我是ReactJS(0.13.1)的新手,并且在我的应用程序中创建了一个组件来显示HTML5视频。 它似乎完美运行,但仅适用于第一选择。从一个视频切换到另一个视频时(更改时),页面中实际显示和播放的视频不会改变。 我可以在Chrome检查器中看到元素更新,但是页面中实际渲染的视频没有改变,如果已经播放,则继续播放。Safari和Firefox中也会发生相同的情况。所有其他元素也会适当更
我有一个highlight模式为:
问题内容: 我的文档如下所示: 说,我需要使用 与会者ID:2016102973634-df 更新与会者JSON数组。我尝试了使用 更新和条件表达式的 多种方法,但均未成功。 这是我的尝试: 找不到用于更新数组中的Json的任何资源。 @notionquest发表评论后:-尚未使用任何JsonMarshaller。最初,我将空数组添加到与会者字段,如下所示: 然后,当新的 与会者 到来时,将其添加