Questions tagged «state»

在程序执行的任何给定点的内存位置的内容称为程序状态。

6
页面上的Vuex状态刷新
我的应用程序使用Firebase API进行用户身份验证,将登录状态另存为Vuex状态中的布尔值。 当用户登录时,我设置了登录状态并相应地显示“登录/注销”按钮。 但是刷新页面后,vue应用程序的状态将丢失并重置为默认状态 这会导致出现问题,因为即使用户登录并刷新页面,登录状态也将被设置为false,即使用户保持登录状态,也会显示登录按钮而不是退出按钮。 我应该怎么做才能防止这种行为 我应该使用Cookie 还是可以使用其他更好的解决方案... --
105 vue.js  vuejs2  state  vuex 

6
React应用中的setInterval
我在React还是很新,但是我一直在慢慢地学习,遇到了一些我坚持的事情。 我正在尝试在React中构建一个“计时器”组件,说实话,我不知道我是否做得正确(或有效)。在下面的代码中,我将状态设置为返回对象,{ currentCount: 10 }并且一直在与componentDidMount,玩弄componentWillUnmount,render并且我只能使状态从10倒数到9。 分两部分的问题:我怎么了?而且,有没有一种更有效的方式来使用setTimeout(而不是使用componentDidMount&componentWillUnmount)? 先感谢您。 import React from 'react'; var Clock = React.createClass({ getInitialState: function() { return { currentCount: 10 }; }, componentDidMount: function() { this.countdown = setInterval(this.timer, 1000); }, componentWillUnmount: function() { clearInterval(this.countdown); }, timer: function() { this.setState({ currentCount: 10 }); }, render: function() { var displayCount …

6
删除HTML按钮/提交的完整样式
有没有一种方法可以完全删除Internet Explorer中按钮的样式?我使用css sprite作为按钮,一切看起来都很好。 但是,当我单击该按钮时,它稍微向顶部移动,使它看起来变形。是否有CSS单击状态或mousedown?我不知道是什么触发了这种状态。 我知道这不是什么大不了的事,但是有时候这只是小事。

6
React-未安装组件上的setState()
在我的react组件中,我尝试在ajax请求进行时实现一个简单的微调器-我使用状态来存储加载状态。 由于某种原因,我的React组件下面的这段代码抛出此错误 只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用了setState()。这是无人值守。请检查未定义组件的代码。 如果我摆脱了第一个setState调用,错误就会消失。 constructor(props) { super(props); this.loadSearches = this.loadSearches.bind(this); this.state = { loading: false } } loadSearches() { this.setState({ loading: true, searches: [] }); console.log('Loading Searches..'); $.ajax({ url: this.props.source + '?projectId=' + this.props.projectId, dataType: 'json', crossDomain: true, success: function(data) { this.setState({ loading: false }); }.bind(this), error: function(xhr, status, err) …

9
反应setState不更新状态
所以我有这个: let total = newDealersDeckTotal.reduce(function(a, b) { return a + b; }, 0); console.log(total, 'tittal'); //outputs correct total setTimeout(() => { this.setState({dealersOverallTotal: total}); }, 10); console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); //outputs incorrect total newDealersDeckTotal只是一个数字数组,[1, 5, 9]例如,但是this.state.dealersOverallTotal没有给出正确的总数,但是total呢?我什至设置了超时延迟,以查看是否可以解决问题。任何明显的还是我应该发布更多代码?

1
Redux不只是美化了全球状态吗?
所以我一周前开始学习React,我不可避免地遇到了状态问题以及组件应该如何与应用程序的其余部分进行通信。我四处搜寻,Redux似乎是本月的风土人情。我通读了所有文档,我认为这实际上是一个非常革命性的想法。这是我的想法: 人们普遍认为状态是非常邪恶的,并且是编程中大量错误的来源。Redux并未将所有内容分散在整个应用程序中,而是为什么不将所有内容都集中在必须发出更改操作的全局状态树中?听起来不错。所有程序都需要状态,因此让我们将其停留在一个不纯净的空间中,并仅在该空间内对其进行修改,以便轻松查找错误。然后,我们还可以声明性地将各个状态块绑定到React组件,并使它们自动重绘,并且一切都很好。 但是,我对整个设计有两个问题。首先,为什么状态树需要不可变?说我不在乎时间旅行调试,热重装,并且已经在我的应用程序中实现了撤消/重做。要做这件事似乎很麻烦: case COMPLETE_TODO: return [ ...state.slice(0, action.index), Object.assign({}, state[action.index], { completed: true }), ...state.slice(action.index + 1) ]; 代替这个: case COMPLETE_TODO: state[action.index].completed = true; 更不用说我正在制作一个在线白板以学习,每个状态更改都可能像在命令列表中添加笔刷一样简单。一段时间后(数百个笔触),复制整个阵列可能开始变得非常昂贵和费时。 我可以接受一个全局状态树,该状态树与通过操作进行更改的UI无关,但是它真的需要不可变吗?像这样的简单实现有什么问题(草稿很粗。写在1分钟内)? var store = { items: [] }; export function getState() { return store; } export function addTodo(text) { store.items.push({ "text": text, "completed", false}); …

3
为什么要给“抽象:真实”的网址指定网址?
今天,我一直在摆弄ui-router,以更好地了解Ionic的脚手架,而我注意到的一件事是,它们为“选项卡”的抽象状态提供了url。 我仅有两次使用抽象状态时,我使用一个空字符串作为url,并且注意到如果我不小心尝试导航到抽象状态(与子状态相对),则会收到错误消息: 无法转换为抽象状态“ [insertAbstractStateHere]” 编辑: “此外,在实验中,当我尝试为我的抽象状态(在Ionic之外)分配一个url并仍然渲染嵌套状态视图时,我得到了一个很大的鹅蛋。什么都没有出现。” 以上引用的陈述是错误的!我在Plunker再次尝试过,嵌套状态的确出现了。 angular.module('routingExperiments', ['ui.router']) .config(function($urlRouterProvider, $stateProvider) { $stateProvider .state('abstractExperiment', { abstract: true, url: '', //<--- seems as if any string can go here. templateUrl: 'abstractExperiment.html' }) .state('abstractExperiment.test1', { url: '/test1', templateUrl: 'abstractTest1.html' }); }); 显然我确实做错了。所以我的新问题是: 是否有任何理由为什么在使用抽象状态时会使用命名状态而不是空字符串,还是仅仅是一种样式选择?

3
模型状态应存储在Angular.js中的何处
我发现Angular对模型的使用令人困惑。Angular似乎采用了模型可以随心所欲的方法-IE Angular不包括显式的模型类,您可以将原始JavaScript对象用作模型。 在我所见过的几乎每个Angular示例中,模型实际上都是手动创建的对象,或者是通过Resource通过API调用返回的对象。因为我看过的几乎每个Angular示例都很简单,所以通常将模型数据存储在$ scope中的控制器中,并且与模型相关的任何状态(例如选择)也都存储在控制器中的$ scope中。这对于简单的应用程序/示例来说效果很好,但是当应用程序变得更加复杂时,这似乎过于简化了。例如,如果上下文发生更改,则存储在控制器中的模型状态可能会变得上下文相关并丢失。A控制器存储selectedGallery和selectedPhoto只能存储全局selectedImage,而不是selectedPhoto每个画廊。在这种情况下,每个画廊使用一个控制器可能会解决此问题,但从UI角度看似乎很浪费,而且可能是不合适和不必要的。 Angular对模型的定义似乎更接近我认为的VO / DTO,它是在服务器和客户端之间传递的一个愚蠢的对象。我的直觉是将这样的对象包装在我认为的模型中-一种类,该类维护与DTO / VO相关的状态(例如选择),根据需要提供变体来操纵DTO / VO,并通知其余对象对基础数据进行更改的应用。显然,Angular的绑定很好地照顾了最后一部分,但是我仍然看到前两个职责的强大用例。 但是,我在所查看的示例中并未真正看到过这种模式,但是我也没有看到我认为可伸缩的替代方案。Angular似乎通过强制使用Singletons隐式地不鼓励将Services用作模型(我知道有解决此问题的方法,但它们似乎并未得到广泛使用或认可)。 那么我应该如何保持模型数据的状态呢? [编辑]这个问题的第二个答案很有趣,接近我目前正在使用的答案。

2
哈斯克尔的嵌套国家
我正在尝试定义状态机家族,它们的状态有些不同。特别地,更“复杂”的状态机具有通过组合更简单的状态机的状态而形成的状态。 (这类似于面向对象的设置,其中对象具有多个属性,这些属性也是对象。) 这是我要实现的简化示例。 data InnerState = MkInnerState { _innerVal :: Int } data OuterState = MkOuterState { _outerTrigger :: Bool, _inner :: InnerState } innerStateFoo :: Monad m => StateT InnerState m Int innerStateFoo = do i <- _innerVal <$> get put $ MkInnerState (i + 1) return i outerStateFoo …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.