Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用React和钩子useState和useEffect更新2d数组

使用React和钩子useState和useEffect更新2d数组
EN

Stack Overflow用户
提问于 2022-05-23 01:48:15
回答 1查看 212关注 0票数 0

我试图创造一个简单的弹跳球比赛,在2d阵列与反应钩。我有一个问题要解决:

当球击中绿色字段时,它应该将向量更改为随机,将数组中的值从"Y“更改为"0"。它改变了方向,但绿色的空间并没有从板上消失。它在重新渲染后还会回来。

下面是完整的代码:https://stackblitz.com/edit/react-cvlqsp?file=src/App.js

编辑

我发现绿色盒子消失了,但是每次球移动,它就会重新呈现,看起来就像永久的。我禁不住不把整件事每次都呈现出来,只有球的移动。我应该在useEffect中使用这个吗?怎么做呢?

以下是随机向量的函数和数组更改的值不起作用:

代码语言:javascript
运行
AI代码解释
复制
let random = () => {
    if (Math.random() < 0.5) {
      setVectorX((vectorX *= -1));
    } else {
      setVectorY((vectorY *= -1));
    }
  };

  let checkforYCollsion = () => {
    if (board[positionY][positionX] === 'Y') {
      random();
      board[positionY][positionX] = '0'
      
    }
  };
EN

回答 1

Stack Overflow用户

发布于 2022-05-23 04:36:46

您需要通过调用setBoardToDisplay (而不是通过分配board的值)来用已更改的2d数组更新状态,因为这不会触发重呈现。您可以通过在setBoardToDisplay中使用回调函数来实现这一点。

代码语言:javascript
运行
AI代码解释
复制
setBoardToDisplay((prev) => {
  // make desired changes to prev and return it
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72346488

复制
相关文章
在docker中安装phpmyadmin
其中,PMA_HOST和PMA_PORT填写的内容是MySQL数据库的地址和端口号
灯珑LoGin
2022/10/31
2.1K0
如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理
在使用 Go 开发的后台服务中,对于错误处理,一直以来都有多种不同的方案,本文探讨并提出一种从服务内到服务外的错误传递、返回和回溯的完整方案,还请读者们一起讨论。
amc
2021/09/18
9.6K0
如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理
python查询mysql,返回json
import MySQLdb import json def getSql(): try: con = MySQLdb.connect(host='localhost', user='', passwd='', db='test', charset='utf8') cursor = con.cursor() sql = "select * from user" cursor.execute(sql)
py3study
2020/01/10
3.7K0
phpMyAdmin错误提示解决
有些朋友打开phpMyAdmin出现这个的原因是 phpMyAdmin的安装目录, tmp目录不存在,或者存在但是权限不对,这是缓存目录,可以加快phpMyAdmin的运行,不会影响程序执行,就是强迫症看着受不了吧 。
煎饼
2022/12/13
2.6K0
MySQL 在查询结果中记录行号
在其他的关系型数据库中,都有rownum这类型的内置函数来提供查询结果的行号,但是MySQL没有,阿福也一直觉得奇怪。
用户2353021
2020/05/09
6.9K0
【Laravel系列7.2】错误与异常处理
在学习完 Laravel 中的日志处理模块之后,接下来马上就进入到错误和异常的学习中。其实通过之前 PHP 基础相关的学习,我们已经了解到 PHP7 中的大部分错误都已经可以通过异常来进行处理了,而我们的 Laravel 框架,基本全是通过异常来进行处理的。
硬核项目经理
2023/03/03
2.9K0
【Laravel系列7.2】错误与异常处理
Laravel Exceptions——异常与错误处理
本文 GitBook 地址:https://legacy.gitbook.com/book/leoyang90/laravel-source-analysis/details
码农编程进阶笔记
2021/07/20
2.1K0
Laravel Exceptions——异常与错误处理
解决Mysql在查询时报:1055分组查询错误的解决方法
如果是Linux,就在配置文件(my.cnf)中修改 sql_mode 的配置(在/etc/my.cnf路径下)。如果是Windows,就修改配置文件my.ini,我的是Windows,如下所示:
星辰sea
2022/10/29
1.3K0
解决Mysql在查询时报:1055分组查询错误的解决方法
点击加载更多

相似问题

phpMyAdmin查询窗口中MySQL中IF语句返回错误

10

原始查询在phpmyadmin上有效,但在laravel上无效

20

Mysql查询显示phpmyadmin中的错误

29

MySQL查询运行在phpMyAdmin中,而不是在Laravel中。

11

MySQL查询缺少在phpMyAdmin中返回的节点-mysql中的结果

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档