Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在ReactJS中每次重新渲染时获取新的FabricJS-Canvas

在ReactJS中每次重新渲染时获取新的FabricJS-Canvas
EN

Stack Overflow用户
提问于 2016-10-27 16:41:35
回答 2查看 356关注 0票数 1

我有我的以下代码,其中我得到了我的道具的名字列表。我为每个元素创建了一个fabric.IText。

问题:我的页面就像一个待办事项列表。因此,当我添加一个待办事项时,FabricCanvas组件被重新渲染。每次发生这种情况时,我都会在旧画布中得到一个新画布。

我尝试在componentDidMount和componentWillMount中初始化fabric.Canvas,但这两个版本都不起作用。

我使用的是选项卡,所以当我更改选项卡,然后又改回选项卡时,我又得到了一个新画布。

-->

代码语言:javascript
运行
AI代码解释
复制
import React from 'react';
import fabric from 'fabric';

var canvas;

var FabricCanvas = React.createClass({
 getInitialState: function(){
 return{
  elements: this.props.elements
 };
},

initiateWidgets: function(){
 canvas = new fabric.Canvas("FabCan");

for (var key in this.state.elements){
  var temp = new fabric.IText(this.state.elements[key]);
  canvas.add(temp);
},

render: function(){
 this.initiateWidgets();
  return(
    <canvas id="FabCan"> </canvas>
  );
 }
});

module.exports = FabricCanvas;
EN

回答 2

Stack Overflow用户

发布于 2016-10-27 17:08:50

您可以使用componentWillReceiveProps

代码语言:javascript
运行
AI代码解释
复制
componentWillReceiveProps(newProps){
    do something with newProps
}
票数 0
EN

Stack Overflow用户

发布于 2016-10-27 17:13:10

如果你想停止渲染同样的东西,试着使用rectJS提供的shouldComponentUpdate()方法。到目前为止我还没有用过它,但是here's是一个很好的教程,可以帮助你解决这个问题。在react中使用带有getInitialState()的道具是一种糟糕的做法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40290052

复制
相关文章
springboot启动时执行
可以实现CommandLineRunner接口然后重写run方法,在run方法里执行
阿超
2022/08/16
4160
如何让程序启动时以管理员身份运行
1. 添加应用程序清单文件(Application Manifest File)
宿春磊Charles
2021/11/05
2.1K0
Linux 启动时如何自动执行命令或脚本?
我们假定使用的是 Bash 作为登录及注销的主 Shell。如果你使用的是其他 Shell,那么有些方法可能会无效。如果有其他的疑问,请参考对应的 Shell 文档。
用户4988085
2021/07/20
3.8K0
【Linux】Linux权限,shell命令以及运行原理
之前我们一直敲得命令和口口声声说的shell到底是什么呢?命令行提示符和输入的指令并且可以执行都是通过命令行解释器来实现的,那么命令行解释器就是我们常说的shell,具体我们看下面!
The sky
2023/10/17
2720
【Linux】Linux权限,shell命令以及运行原理
eclipse启动时和开发时优化
1 eclipse.ini参数优化 -startup plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.401.v20161122-1740 #加载jvm -vm C:\Program Files\Java\jre1.8.0_121\bin #注意这是jre的bin
闵开慧
2018/04/02
9970
eclipse启动时和开发时优化
一起处理启动时接收命令行参数
我们有时在使用一些工具时,往往可以输入 -h 查看需要传入哪些参数,以此来使用这工具,比如 curl 这工具。
小锟哥哥
2022/05/10
4060
一起处理启动时接收命令行参数
.NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署
日常工作中有时候会遇到需要将程序直接在服务器上运行,而不依赖于 IIS 托管的情况,直接运行有两种方式,一种是部署为 服务模式,另一种则是 直接启动 .NET 发布之后的 exe 文件以 控制台模式运行,控制台模式运行主要问题是服务器在重新启动之后不会自动启动,当然也可以选择配置 Windows 计划任务的形式让 控制台在服务器开机时自动启动, 今天给大家分享 .NET 控制台程序和 .NET 开发的 WebAPI 及 Web 项目在以 Windows 服务模式部署时的一些注意事项。
乌拉栋
2022/10/28
6110
.NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署
Linux passwd: 拒绝权限(Permission denied)
原因1:/usr/bin/passwd 权限异常 正常情况下的权限:     ls -l /usr/bin/passwd     -rwsr-xr-x 1 root root 34392 2009-05-22 16:03 /usr/bin/passwd 修复命令:     chown root:root /usr/bin/passwd     chmod u=rwx,go=rx,u+s /usr/bin/passwd 原因2:SELinux 未关闭 2.1.查看SELinux状态 方法1
用户2836074
2018/08/15
6.1K0
Hive启动时 show databases; 报错
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
刘浩的BigDataPath
2021/04/13
1.2K0
Hive启动时 show databases;  报错
React Native如何消除启动时白屏
在RN 项目启动之后有一个短暂的白屏,调试阶段白屏的时间较长,大概3-5秒,打正式包后这个白屏时间会大大缩短,大多时候都是一闪而过,所以称之为“闪白”。 其实解决的方案也有很多,这里做一个简单的
xiangzhihong
2018/02/06
2K0
React Native如何消除启动时白屏
React Native如何消除启动时白屏
在RN 项目启动之后有一个短暂的白屏,调试阶段白屏的时间较长,大概3-5秒,打正式包后这个白屏时间会大大缩短,大多时候都是一闪而过,所以称之为“闪白”。 其实解决的方案也有很多,这里做一个简单的总结
xiangzhihong
2018/01/26
1.3K0
springBoot启动时让方法自动执行
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
chenchenchen
2019/09/02
3.2K0
SpringBoot启动时执行任务
在 SpringBoot 项目中,main 方法调用了 SpringApplication.run 方法,在 SpringApplication.run 方法执行之前还可以执行一些启动任务。具体的方式是实现 ApplicationRunner 或者 CommandLineRunner 这两个接口。
码农UP2U
2021/04/09
1.1K0
SpringBoot启动时执行任务
启动时获取端口号
我们可以如下写法在boot项目启动时获取端口号 package com.ruben.simplescaffold; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.Configur
阿超
2022/08/21
5170
SpringApplication 启动时如何选择 ConfigurableApplicationContext
本文主要说明在调用 SpringApplication.run(…​) 时,如何实例化 ConfigurableApplicationContext,也即是如何选择 ConfigurableApplicationContext 的子类。
安宁
2020/07/14
3.5K0
SpringBoot框架 项目启动时执行
郭顺发
2023/07/07
2350
SpringBoot启动时执行指定任务
@EventListener({ApplicationReadyEvent.class})
乐心湖
2020/07/31
6990
SpringBoot 启动时初始化数据
在使用 springboot 搭建项目的时候,有时候会碰到在项目启动时初始化一些操作的需求,针对这种需求 springboot(spring) 提供了以下几种方案:
BUG弄潮儿
2021/10/08
2K0
Jenkins agent启动时无法成功连接
agent启动报错:provided port: 8182 is not reachable! 网络不可达,解决方法是让Jenkins agent节点能够与Jenkins master节点机器的8182端口通信。(可以使用telnet等工具测试,如果是docker检查端接口是否映射?映射的是否端口号一致等等....)
DevOps云学堂
2021/05/11
2.1K0
Jenkins agent启动时无法成功连接
elasticsearch 启动时指定jdk版本 转
背景 我电脑环境的jdk是1.7,而需要的版本为1.8. 因此需要给elasticsearch指定jdk1.8(不需要将jdk1.8配置到环境变量).
双面人
2019/08/31
3.4K0

相似问题

运行Artisan命令时拒绝目录权限

10

运行Kafka命令时权限被拒绝

10

使用chroot运行命令时,权限被拒绝

10

运行maven命令jenkins时权限被拒绝

421

运行cd命令时jenkins权限被拒绝

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文