javascript - 如何使用 jquery 向 DOM 添加反应组件?
问题描述
这可能是一个非常简单的问题,但是我想用 react 和 jquery 将组件添加到网格中。gridGame 是一个黑色的 100 像素 x 100 像素的正方形,我想在其中添加项目。我使用的行(一个变量)女巫是一个从 1-9 到的数字,并将其相加gridGame-${rows}
,如此处所示,因此它可以自动更新要加入的正确行。值应该是: gridGame-${row} (数字行从 1 到 9 是多少)然后我想在 gridGame 中添加一个名为 <Test /.> 的组件(在代码的看不见的部分中,女巫被声明为顶部)。
下面的函数有我认为可以在这种情况下工作的 jquery:
function = (rows) => {
console.log(`joining ${rows}`)
let value= $(`#gridGame-${rows}`);
value.append("<Test />");
value.css("background-color", 'brown');
$(".create-coinflip-box").css("display", "none");
}
css 背景更改有效,但 value.append 不显示反应组件。
这是 <Test /.> 中的 React 组件:
import React from 'react';
import StatusIcon from './img/image.png';
import Player1Icon from './img/image.png'
class newGame extends React.Component {
render() {
return(
<div>
HELLO
</div>
);
}
}
export default newGame;
老实说,我对这不起作用的想法是 0。
谢谢您的帮助 :)
解决方案
这个答案来自评论中的大卫。对我来说,问题是我试图通过一个按钮来渲染一个组件,而不是实际渲染它的自身。
解决方案是改为让按钮更改状态,以更新 React DOM。然后只需要一个 if 语句来检查状态然后显示组件。
他的评论解释得更好,并为我解决了这个问题。
推荐阅读
- tensorflow - 模型没有在使用 U-net 的测试数据中泛化
- database - 从 Firebase 显示单个文档
- python - Python3:使用函数和 while 循环更改列表中的项目。为什么我的代码运行不正常?
- python - 如何使可执行文件在所有系统上运行
- laravel - (Laravel)LoginCotroller 使用了 AuthenticatesUsers 类,它在哪里?
- c++ - 直接使用c++流缓冲来解压
- c - /bin/ld: leetcode.c:(.text+0xfd): undefined reference to `fmax'
- chef-infra - 我必须在哪里指定本地模式下的运行列表?
- python - 如何使用 for 循环访问列表中的下一个元素
- react-native - 使用 react-navigation 显示用户令牌