inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Sử dụng Truffle Drizzle trong phát triển Ethereum Dapp blockchain

Thực hiện giao dịch và yêu cầu, kiểm tra chức năng

일부 소스 및 컴파일 에러 입니다.

Đã giải quyết

270

pykoook

13 câu hỏi đã được viết

2

1. MyComponent.js의 render() 함수 내, 소스 일부가 안보여서 부탁드립니다.

2.MyComponent.js의 return() 함수 내,  소스 일부가 안보여서 마찬가지 부탁드립니다.

Ethereum truffle dapp

Câu trả lời 2

2

pykoook

감사합니다.

2021, 새해 복  넘치시길 기원드립니다.

1

coldmind

시간이 지난 것이라 이 소스파일이 맞는지 모르겠지만 참고하시기 바랍니다.

import React, { Component } from 'react'
import PropTypes from 'prop-types';

import {Grid, Row, Col, Panel} from 'react-bootstrap';
import {Button, ButtonGroup, ButtonToolbar} from 'react-bootstrap';
import {InputGroup, FormControl} from 'react-bootstrap';
import Glyphicon from "react-bootstrap/lib/Glyphicon";

import './css/bootstrap/css/bootstrap.min.css';
import './css/style.css';

class MyComponent extends Component {

    //legacy Context API
    constructor(props, context) {
        super(props);
        this.drizzle = context.drizzle;
        this.contracts = context.drizzle.contracts;

        this.state = {
            val: 0,
            storedData: 0,
        }
    }

    componentDidMount() {

        this.contracts.SimpleStorage.events.Change()
            .on('data', (event) => {
                this.setState({storedData: event.returnValues.newVal});
            })
            .on('error', (err) => { console.log(err) } );
    }

    handleSet = () => {
        const val = this.state.val;
        if (val && !isNaN(val)) {
            //this.contracts.SimpleStorage.methods.set.cacheSend(val);
            this.contracts.SimpleStorage.methods.set(val).send({from: this.props.accounts[0]});
        }
    }

    handleGet = async () => {
        const storedData = await this.contracts.SimpleStorage.methods.get().call();
        this.setState({storedData});
    }

    handleSayHello = () => {
        // this.props.onSayHello();
        this.drizzle.store.dispatch({type: 'SAY_HELLO', payload: 'SOMETHING'});
    }

    handleChange = (e) => {
        if (e.target.value !== "") {
            this.setState({val: e.target.value});
        }
    }

    render () {

        return (
            <Grid fluid={true}>
                <Row>
                    <Col md={5}>
                        <InputGroup style={{paddingBottom:'10px'}}>
                            <InputGroup.Addon>Value</InputGroup.Addon>
                            <FormControl type="number" placeholder="Enter number" bsSize="lg" onChange={this.handleChange} />
                        </InputGroup>
                    </Col>
                </Row>
                <Row>
                    <Col md={5} style={{textAlign: "center"}}>
                        <div className="button">
                            <ButtonToolbar>
                                <ButtonGroup justified>
                                    <Button href="#" bsStyle="primary" bsSize="large" block onClick={this.handleSet}>
                                        Set
                                    </Button>
                                    <Button href="#" bsStyle="info" bsSize="large" block onClick={this.handleGet}>
                                        Get
                                    </Button>
                                    <Button href="#" bsStyle="success" bsSize="large" block onClick={this.handleSayHello}>
                                        Hello!
                                    </Button>
                                </ButtonGroup>
                            </ButtonToolbar>
                        </div>
                    </Col>
                </Row>
                <Row style={{marginTop:'10px'}}>
                    <Col md={5}>
                        <Panel bsStyle="info">
                            <Panel.Heading>
                                <Panel.Title>
                                    <Glyphicon glyph="signal" /> Stored Data - Event
                                </Panel.Title>
                            </Panel.Heading>
                            <Panel.Body>
                                <div style={{display:"inline-block"}}>
                                    <p>{this.state.storedData}</p>
                                </div>
                            </Panel.Body>
                        </Panel>
                    </Col>
                </Row>
            </Grid>
        )
    }
}

// legacy Context API
MyComponent.contextTypes = {
    drizzle: PropTypes.object
}

export default MyComponent;

강의자료 요청드립니다.

0

47

1

3-3 트랜잭션이란 무엇인가 강의자료는 없나요?

0

86

2

ova 구글 드라이브 404

0

45

1

강의 자료 요청 및 오류 질문

0

104

2

LAYER2

0

92

1

질문이요

0

84

1

Web3.js1

0

125

2

질문이요

0

91

1

컴파일 및 배포

0

175

1

컴파일 및 배포

0

190

4

rinkeby testnet 사용

0

134

1

[긴급] 전체 소스코드 파일 있었던거 같은데 어디서 받나요?

0

240

2

블록체인 강의

0

174

2

강의내용 질문입니다 메타마스크

0

277

1

localhost 전환이 안됩니다.

0

166

1

민팅한 nft의 판매 등록이 되지 않아요.

0

246

1

metadata를 읽어오지 못해요 ㅠ

0

247

1

React Native 설치 전 단계가 무엇일까요?

0

489

1

시뮬레이터 기종이나 설정은 어떻게 진행해야할까요?

0

381

1

Intel x86 Emulator Accelerator (HAXM installer) 설치가 불가능합니다.

0

782

1

리팩토링 1 강의 getAnimalTokens() 함수 사용 권한 문의

0

261

1

MyNewComponent.js의 return()문 내의 소스가 안보여서 부탁을 드립니다.

0

192

1

MyNewComponent.js의 return( )문 내의 일부 소스가 안보여서 부탁을 드립니다.

2

214

3

본 강좌 블록체인 이더리움 Dapp 개발에 트러플 드리즐 활용하기 의 소스를 다운 받을 수 있는지요?

0

254

1