truffle框架之react学习

今天满课,所以简单了解了下truffle的unbox中的react。通过这个构建UI界面真的蛮简单。因为课程需要就先看了下。
然后是跟着写了voting的合约,蛮简单,主要是过一下0.5.16中的不同。中间有很多坑。(依然很多坑)

首先构建就是坑:

truffle unbox react

不出所料这个时候应该会有:

gyp ERR! find VS You need to install the latest version of Visual
Studiogyp ERR! find VS including the “Desktop development with C++”

这种类型的错误。
当时发誓来着,再也不用那个 Visual Studio的,但是官方推荐是下载那个,然后勾选c++构建包。

幸好有第二个选项:
node-gyp

好嘛,好不容易几G的构建包下好了,又:

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position
0: ordinal not in range(128)

难受不?
但是不怕啊,总算是Python报错了。自己可以尝试debug。
最终结论:
truffle框架之react学习_第1张图片
gyp下的这个文件中,会获取当前路径作为name参数传入,然后:

d = hashlib.md5((str(seed) + str(name)).encode('utf-8')).hexdigest().upper()

有一个这个操作,就导致中文无法被编码。。。
路径不包含中文就好了。
————————————————

现在环境问题解决了,可以开始写合约了。
问题又一大堆。
0.4.x-0.5.x真的就是两个语言。
truffle框架之react学习_第2张图片
看到那些红线了吗。。我tm一点一点debug过来的。大致就是:
需要强制定义数据存储位置(storage和memery)
必须要+public
没有写操作的地方要+view
构造函数变成了constructor

很坑爹的是给构造函数传参的时候,
当时写的是bytes32。。没注意,就传的string数组过去。差点电脑跑死机。

pragma experimental ABIEncoderV2;

+了这句之后就能使用string的数组传数据了。
然后truffle中给合约构造函数传参是:
truffle框架之react学习_第3张图片
在这里传的。

然后进devlop编译部署。
上面不加require输入不存在的who好像没有报错。

明天看看react吧!

你可能感兴趣的:(区块链学习-以太坊)