在渲染组件之前获取信息,但不能使用getInitialProps ReactJS

时间:2018-08-14 04:51:58

标签: reactjs web3

我在下面有一些代码。我需要通过metamask在web3注入之后但在渲染之前通过调用获取信息,但是我不能使用getInitialProps,因为由于服务器端渲染,它将失败。不太确定如何设计。

class CampaignIndex extends Component {

async componentDidMount() {
    const accounts = await web3.eth.getAccounts();
    const campaigns = await factory.methods
    .getCampaigns("0x0000000000000000000000000000000000000000", 0)
    .call({
        from: accounts[0]
    });

    console.log(campaigns["completedCampaigns"]);
    console.log(campaigns["ongoingCampaigns"]);

    return { campaigns };
}

render() {
    return <div>{this.props.campaigns["completedCampaigns"][0]}</div>
 }
}

export default CampaignIndex;

错误:TypeError:无法读取未定义的属性“ completedCampaigns”

1 个答案:

答案 0 :(得分:0)

我认为最好使用Picasso Picasso.get().load("http://" + url).into(imageView); // If server return url without `http{s}://` 的使用方式不正确。

setState