我不熟悉react native,我在这里尝试在加载组件时更新状态。但是,状态没有更新。
constructor(props) {
super(props);
this.state = {
selectedSection: 'None',
sectionObject: { index: 0, key: ''},
sectionIndex: 0,
sectionArray: [],
};
}
componentDidMount()
{
this.setState({
sectionObject: { index: this.state.sectionIndex, key: this.state.selectedSection},
sectionArray: this.state.sectionArray.concat(this.state.sectionObject),
})
console.log('sectionObject:',this.state.sectionObject);
console.log('section array:',this.state.sectionArray);
}
我做错了什么?
当您尝试登录时,可以看到旧值。尝试登录setState回调,如此setState({key:value},()=
使现代化
我想这是一个异步,所以你可以在渲染中看到更新的状态。
class Hello extends React.Component {
constructor(props) {
super(props);
this.state = {
selectedSection: 'None',
sectionObject: { index: 0, key: '' },
sectionIndex: 0,
sectionArray: [],
};
}
componentDidMount() {
this.setState({
selectedSection: 'Wowowowowow',
})
}
render() {
console.log(this.state.selectedSection)
return <div>{this.state.selectedSection}</div>
}
}
ReactDOM.render(
<Hello name='World' />,
document.getElementById('container')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="container"></div>
问题内容: 我觉得我已经在阳光下尝试了所有东西,但是一定缺少一些非常明显的东西。在下面,我试图将一个新项目推入数组并更新状态,但是无论我做什么,状态都不会从初始数组更改。 当我console.log newListItems时,新项目就包括在内,因此到目前为止所有工作都在进行,它是不会更新的实际状态。我想念什么? addItem方法: 我也没有在控制台中收到任何错误消息。 完整代码: 问题答案:
我正在从一个文件导出常量并将其导入另一个文件,如下所示: 常数.js App.js 我希望我的初始状态是在构造函数中设置的,然后在componentWillMount上,我希望使用常量文件中的值设置状态,然后再围绕组件和流添加进一步的逻辑。 但是,我发现,我的状态没有被更新,如果我在调用setState之后记录控制台日志,状态仍然没有定义,如果我引入一个方法,需要state中的值,那么在执行堆栈的
我有一个简单的组件 问题是我需要添加什么
问题内容: 是否有原因在循环中调用会阻止其多次更新状态? 我有一个非常基本的jsbin,突出了我所看到的问题。有两个按钮。一个将状态计数器更新为1。另一个在循环中调用One的基础函数- 似乎将多次更新状态。 我知道此问题的几种解决方案,但我想确保首先了解这里的基本机制。为什么不能循环调用?我是否笨拙地编写了代码,以至于无法达到预期的效果? 问题答案: 从React Docs: setState()
所以我有这个: 只是一个数组的数字例如然而没有给出正确的总数,但?我甚至放了一个超时延迟,看看这是否解决了问题。任何明显的还是我应该发布更多的代码?
我猜这可能与从父级打开有关,但我有其他组件,它们内部的状态发生变化,所以我有点困惑,为什么这个组件不尊重它的新状态。 谢谢