将我的表单组件传递给另一个组件| React.js

时间:2019-06-11 10:57:03

标签: javascript reactjs

您好,我有一个表单组件,该表单组件位于其中,我正尝试将其传递到另一个名为“ airtime-data-mtn.js”的组件中,以构成整个页面的一部分。也就是说,表单只是整个页面的一部分,广播数据组件已经具有呈现的信息,即页面信息。注意:在将表单传递到另一个组件中时,我做过类似的事情,但是在render方法中,我并不仅是表单本身就呈现页面的其他信息

因为它是一种表单,所以我只是尝试像<mtnform onSubmit={this.handleSubmit}/>一样传递它,但是我注意到它不是蓝色而是表示它是不变色的。我相信它将其视为JSX而非形式。当我添加路线并将表单用作组件时,它将按预期方式呈现表单,但是当我尝试将其传递给通话时间组件时,它将无法按预期运行

 render() {
    return (
      <form
        name="airtime-form"
        className="airtime-form"
        onSubmit={this.handleSubmit}
      >
        <div style={{ margin: "20px 0" }}>
          <select
            ref="constantVal"
            className="select"
            onChange={this.handleDropDownChange}
          >
            {this.state.obj.map(item => {
              return (
                <option key={item.Id} value={item.Name}>
                  {item.Name}
                </option>
              );
            })}
          </select>
        </div>
        <div style={{ margin: "20px 0" }}>
          <input
            type="number"
            value={this.state.Price}
            onChange={this.handlePriceChange}
            placeholder="Amount"
          />
        </div>
        <div style={{ margin: "20px 0" }}>
          <input
            type="text"
            value={this.state.ParameterRegEx}
            onChange={this.handleNumberChange}
            placeholder="Phone Number"
          />
        </div>
        <div style={{ margin: "20px 0" }}>
          <input
            type="text"
            value={this.state.Email}
            onChange={this.handleEmailChange}
          />
        </div>
        <div style={{ margin: "20px 0", fontSize: "20px" }}>
          *Email is required for notification purposes
        </div>
        <div>
          <button type="submit" className="btn btn-submit">
            Submit
          </button>
        </div>
      </form>
    );
  }
 render() {
    const { isLoaded } = this.state;
    if (!isLoaded) {
      return (
        <div className="center">
          <img src={Spinner} alt="loading spinner" />
        </div>
      );
    } else {
      return (
        <body
          style={{
            backgroundImage: "url(" + background + ")",
            backgroundSize: "cover",
            backgroundRepeat: "no-repeat"
          }}
        >
          <section>
            <div className="row">
              <div
                className="col span-2-of-3"
                style={{ backgroundColor: "#3C444C" }}
              >
                <div className="row">
                  <h2>
                    <img
                      src={mtn}
                      alt="mtn logo"
                      style={{ display: "inline-block" }}
                    />
                    Airtime & Data
                  </h2>
                </div>
                <div className="row">
          <mtnform></mtnform>
                </div>
              </div>
              <div className="col span-1-of-3">
                <div className="rhs-content">
                  <div className="row">
                    <h2 className="text-transform">use payarena today</h2>
                  </div>
                  <div className="row">
                    <h3 className="select-headings">Airtime & Data</h3>
                    <form onSubmit={this.onUrlSelected.bind(this)}>
                      <select ref="items" className="select">
                        {this.state.airtime.map(item => {
                          return (
                            <option key={item.id} value={item.Url}>
                              {item.Name}
                            </option>
                          );
                        })}
                      </select>
                      <button type="submit" className="btn btn-submit">
                        Go
                      </button>
                    </form>
                  </div>
                  <div className="row">
                    <h3 className="select-headings">Bills Payment</h3>
                    <form onSubmit={this.onSecondUrlSelected.bind(this)}>
                      <select ref="items1" className="select">
                        {this.state.bills.map(item => {
                          return <option value={item.Url}>{item.Name}</option>;
                        })}
                      </select>
                      <button type="submit" className="btn btn-submit">
                        Go
                      </button>
                    </form>
                  </div>
                  <div className="row">
                    <h3 className="select-headings">Collections & Levies</h3>
                    <form onSubmit={this.onThirdUrlSelected}>
                      <select ref="items2" className="select">
                        {this.state.collectionsAndLevies.map(item => {
                          return <option value={item.Url}>{item.Name}</option>;
                        })}
                      </select>
                      <button type="submit" className="btn btn-submit">
                        Go
                      </button>
                    </form>
                  </div>
                  <div className="row">
                    <h3 className="select-headings">The Lotteries</h3>
                    <form onSubmit={this.onFourthUrlSelected}>
                      <select ref="items3" className="select">
                        {this.state.lottery.map(item => {
                          return <option value={item.Url}>{item.Name}</option>;
                        })}
                      </select>
                      <button type="submit" className="btn btn-submit">
                        Go
                      </button>
                    </form>
                  </div>
                  <div className="row">
                    <p>Pay using any of the following</p>
                    <img src={logomask} alt="logo mask" className="logo-mask" />
                  </div>
                </div>
                {/*eslint-disable-next-line react/jsx-no-duplicate-props*/}
                <section className="row" className="next-rhs">
                  <p>Download the Payarena app</p>
                  <ul className="main-nav">
                    <li>
                      <img src={googlestore} alt="google play store" />
                    </li>
                    <li>
                      <img src={appstore} alt="app store" />
                    </li>
                  </ul>
                </section>
              </div>
            </div>
          </section>
          <footer className="footer">
            <div className="row">
              <div className="col span-1-of-3">
                <img
                  src={palogo}
                  alt="pa-logo"
                  style={{
                    display: "block",
                    marginLeft: "30px;"
                  }}
                />
                <p>An innovation from Unified Payments Limited</p>
              </div>

              <div className="col span-2-of-3">
                <div className="row">
                  <div className="col span-1-of-3">
                    <h2>Page Links</h2>

                    <p>
                      {" "}
                      <a
                        href="/about"
                        style={{ textDecoration: "none", color: "white" }}
                      >
                        About Us
                      </a>
                    </p>

                    <p>
                      {" "}
                      <a
                        href="/services"
                        style={{ textDecoration: "none", color: "white" }}
                      >
                        Our Services
                      </a>
                    </p>
                    <p>
                      {" "}
                      <a
                        href="/about"
                        style={{ textDecoration: "none", color: "white" }}
                      >
                        The Team
                      </a>
                    </p>
                  </div>

                  <div className="col span-1-of-3">
                    <h2>Support Links</h2>
                    <p>
                      <a
                        href="/contact"
                        style={{ textDecoration: "none", color: "white" }}
                      >
                        Contact Us
                      </a>
                    </p>
                    <p>
                      <a
                        href="/faqs"
                        style={{ textDecoration: "none", color: "white" }}
                      >
                        FAQs
                      </a>
                    </p>
                  </div>
                  <div className="col span-1-of-3">
                    <h2>Social Links</h2>
                    <p>
                      {" "}
                      <a
                        href="https:/www.twitter.com"
                        style={{ textDecoration: "none", color: "white" }}
                      >
                        <i
                          className="icon ion-logo-twitter"
                          style={{ color: "white", margin: "0 10px" }}
                        />
                        Twitter
                      </a>
                    </p>
                    <p>
                      {" "}
                      <a
                        href="https://www.facebook.com"
                        style={{ textDecoration: "none", color: "white" }}
                      >
                        <i
                          className="icon ion-logo-facebook"
                          style={{ color: "white", margin: "0 10px" }}
                        />
                        Facebook
                      </a>
                    </p>
                    <p>
                      {" "}
                      <a
                        href="https://www.linkedin.com"
                        style={{ textDecoration: "none", color: "white" }}
                      >
                        <i
                          className="icon ion-logo-linkedin"
                          style={{ color: "white", margin: "0 10px" }}
                        />
                        Linkedin
                      </a>
                    </p>
                  </div>
                </div>
              </div>
            </div>
          </footer>
          <footer
            className="footer"
            style={{ backgroundColor: "white", color: "black" }}
          >
            <div className="row">
              <p style={{ float: "left" }}>
                Copyright &copy; Unified Payments 2019.
              </p>
            </div>
          </footer>
        </body>
      );
    }
  }

请提供任何帮助。我被困住并被压住了

0 个答案:

没有答案