Значение объекта реквизита не передается на следующую страницу

Я не могу понять, почему props.query.address возвращает "undefined". Я использую next.js для маршрутизации.
Пожалуйста, посмотрите на скриншот ниже,

Обратите внимание на выделенный маршрут. Когда я нажимаю кнопку "Добавить запросы", вместо выделенного адреса я получаю неопределенное значение.

Ниже приведен код моего route.js,

const routes = require("next-routes")(); routes .add("/campaigns/new", "/campaigns/new") .add("/campaigns/:address", "/campaigns/show") .add("/campaigns/:address/requests", "/campaigns/requests/index") .add("/campaigns/:address/requests/new", "/campaigns/requests/new"); module.exports = routes;

Добавить код страницы запроса,

`

import React, { Component } from "react";
import Layout from "../../../components/Layout";
import { Form, Input, Message, Button } from "semantic-ui-react";
import { Link } from "../../../routes";

class RequestIndex extends Component {
  static async getInitalProps(props) {
    const { address } = props.query;
    return { address };
  }

  render() {
    return (
      <Layout>
        <h3>Requests</h3>
        <Link route={`/campaigns/${this.props.address}/requests/new`}>
          <a>
            <Button primary>Add Requests</Button>
          </a>
        </Link>
      </Layout>
    );
  }
}

export default RequestIndex;

`

код для страницы создания запроса,

`

import React, { Component } from "react";
import { Form, Input, Message, Button } from "semantic-ui-react";
import Layout from "../../../components/Layout";
import web3 from "../../../ethereum/web3";
import Campaign from "../../../ethereum/campaign";

class RequestNew extends Component {
  state = {
    value: "",
    description: "",
    receipent: ""
  };

  static async getInitialProps(props) {
    console.log(props);
    return { address: props.query.address };
  }

  onSubmit = async event => {
    console.log("onsubmit called");
    console.log("Address is ", this.props.address);
    if (event) event.preventDefault();
    const campaign = Campaign(this.props.address);
    const { description, value, receipent } = this.state;

    try {
      const accounts = await web3.eth.getAccounts();
      await campaign.methods
        .createRequest(description, web3.utils.toWei(value, "ether"), receipent)
        .send({ from: accounts[0] });
    } catch (error) {}
  };

  render() {
    return (
      <Layout>
        <h3 style={{ margin: "20px" }}>Create a Request</h3>
        <Form onSubmit={this.onSubmit} style={{ margin: "20px" }}>
          <Form.Field>
            <label>Description</label>
            <Input
              value={this.state.description}
              onChange={event =>
                this.setState({ description: event.target.value })
              }
            />
          </Form.Field>
          <Form.Field>
            <label>Amount in Ether</label>
            <Input
              value={this.state.value}
              onChange={event => this.setState({ value: event.target.value })}
            />
          </Form.Field>
          <Form.Field>
            <label> Receipent's Address</label>
            <Input
              value={this.state.receipent}
              onChange={event =>
                this.setState({ receipent: event.target.value })
              }
            />
          </Form.Field>
          <Button primary>Create</Button>
        </Form>
      </Layout>
    );
  }
}

export default RequestNew;

`

0 ответов

Другие вопросы по тегам