问题标签 [react-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
59 浏览

javascript - 如何通过异步在类外使用 setState

我在对 api 进行提取后尝试使用 setState,以便将其加载到反应中。问题是它是一个异步函数,所以我不能在类本身中使用它。我怎样才能从课堂本身之外改变状态?

我有一个函数async function getUsers() {},并且在它下面的类中starte = {data: ''}

0 投票
2 回答
71 浏览

javascript - 反应表单重置

}

**我似乎无法弄清楚我的代码有什么问题。我想使用与提交相同的函数来重置状态。在将内容推送到数组后,我尝试设置状态,但无论我做什么,状态都保持不变。我是一名新开发人员,所以我为这个简单的问题道歉。**

0 投票
1 回答
1100 浏览

json - 如何在 React.js 中动态更改 json 对象内的真/假语句

我试图在单击按钮时添加和删除产品,每个按钮都在不同的组件中,我从中获取的数据在 storeData 组件中,如果状态为,则内部有一个具有真/假状态的对象true 产品应显示在购物车组件中,如果 false 它将删除产品。

现在在 ProductList 组件中,当我单击添加按钮时,状态将更改为 true,但它不会更改 storeData 组件中的实际状态,因此当我转到 Cart 组件时的结果没有显示

我知道我这样做是错误的,所以我该如何执行这个添加和删除操作,我是 React.js 的新手,所以请任何帮助将不胜感激。

产品列表组件

购物车组件

存储数据组件

0 投票
3 回答
1838 浏览

javascript - 从道具反应未定义的setState

我有两个组件:Orders并且FormDialog,第一个是第二个的父亲。我试图将数据作为属性从Ordersto发送FormDialog如下:

订单组件

窗体对话框组件

TypeError: this.state.order is undefined尝试编译时显示此信息。有什么建议吗?

0 投票
2 回答
51 浏览

reactjs - 如果父组件多次渲染,是否可以控制子组件进行反应?

我正在处理有关父组件渲染两次而子组件也渲染两次的问题。父母的现有代码是

子组件开始渲染使用

由于它的 componentDidMount 函数调用了两次,API 也渲染了两次,这必须避免,每次父渲染子的状态都会被刷新,所以我无法与状态进行比较,是否有可能检查或解决这个问题,我可以参考吗?这解决了我调用父级它调用 API 一次的次数

0 投票
1 回答
112 浏览

reactjs - 依靠 this.props 计算新状态如何可能会破坏我的 React 应用程序?

React 文档讲述了很多关于setState()异步和这个特性的后果的信息。
特别是,它说

因为 this.props 和 this.state 可能是异步更新的,所以你不应该依赖它们的值来计算下一个状态。

它还提供了很好的例子,为什么依赖this.props可能(并且将会)破坏你的代码。其中之一(从这里):

在理解状态更新的异步性质时,这些示例非常具有说明性和帮助性。

不幸的是,我找不到任何关于依赖this.props状态更新的类似示例。
有人可以帮我吗?我希望看到最少的说明性代码,但如果你有一个巨大的真实示例,它也会很棒。:)

谢谢你。

0 投票
3 回答
885 浏览

reactjs - 在 react native 中使用 react-navigation 在选项卡视图中的两个屏幕之间共享数据(数组)

我正在使用react-navigation没有redux. 所以我有两个选项卡,每个选项卡都有自己的堆栈导航器,每个选项卡都有一个屏幕。所以我需要locations两个屏幕中的数组。目前我在两个屏幕上都这样做:

我只想将这个数组放在一个位置,并且两个组件都应该共享这个单一的事实来源。因此,任一屏幕所做的更改都会反映在另一个屏幕上。没有redux这可能吗?

0 投票
2 回答
157 浏览

reactjs - React 复选框组件:我应该在哪里保留状态更改?

react-table中,我制作了一个自定义drop-down-menu组件,当用户单击列标题时会出现该组件。

在此处输入图像描述

当用户单击“选择列”选项时,会出现一个带有复选框选项的模式,用户可以在其中选择要显示或隐藏的列。

在此处输入图像描述

这个带有复选框选项的模式位于下拉菜单组件中。问题是我不知道哪个是处理状态变化的最佳方式。我应该保持两个组件(表格组件和下拉菜单组件)的状态更改吗?我应该为此使用redux吗?我要使用很多表,所以列的总数会很大。我真的对这一切感到困惑。

0 投票
0 回答
67 浏览

reactjs - 在 ReactJS 中设置后不显示状态

我收到一些数据作为道具,点击时我试图显示数组中的下一个项目。在渲染中,我调用{this.dropdown()}的是成功触发并显示数据的方法:

接下来,当我单击项目时,子类别显示没有问题,并生成显示下一个功能状态的位置{this.state['sub'+cat.id]}

接下来的两个函数是循环遍历数组的其余部分以在单击时显示下一个项目。(请注意,我从一开始就没有使用它,因为第一行数据不是对象,而是包含 'children' 作为数组,所以现在我可以使用这两个函数):

到目前为止,没有弹出错误,但未显示生成的位置状态。当生成{this.state['sub'+cat.id]}显示状态的位置(使用这个:)时,我将其 id 传递给下一步以设置具有相同 id 的状态,因此状态应该在那里显示,但什么也没有。如果有人能看到问题出在哪里,请回复可以帮助我在这里会很棒!谢谢。

评论中要求的组件的完整代码:

更新:

我使用 Redux 从服务器接收数组,将其发送到我的第一个组件,在该组件中我使用 map() 方法查找第一级数组并将其作为 props(catList) 的子组件发送到组件。不能在这里真正复制和粘贴 catList 道具值,所以这里是数组,我如何传递它和 console.log(this.props.catList) 的 IMG console.log(this.props.catList) 的 IMG

大批:

在这里我使用 map() 方法,将 prop catList 传递给组件:

0 投票
1 回答
1110 浏览

javascript - 当状态改变时从状态变量更新数据库

我要做的是在按下保存按钮时使用状态变量更新我的数据库。在保存处理程序中,将新值添加到 this.state.saved 列表并调用 updataDatabase 函数。问题是当按下按钮时 setState 不会更新状态变量,因此数据库中没有任何更新。我的问题是:如何让 setState 更新组件以便更新数据库?这是我的代码