Rumah  >  Soal Jawab  >  teks badan

Cantikkan teg input dalam ReactJs menggunakan gaya CSS

<p>Saya mempunyai komponen berikut dalam aplikasi React JS saya: </p> <pre class="brush:php;toolbar:false;">const Input = ({nama, ..rest}) => kembali ( <div> <jenis input="teks" nama={name} {...rest}/> {errors && <span>Error: Sila tambahkan nama anda</span>} </div> ); };</pre> <p><code>rest</code>Parameter termasuk semua<code>React.InputHTMLAttributes<HTMLInputElement></code>, seperti yang diperlukan, className, id, dsb. </p><p>Saya menghadapi masalah untuk menambah atribut <kod>gaya</code> Jika saya menambah sesuatu seperti ini: </p> <p><kod>margin-bawah: 45px</code></p> <p> Kemudian akan ada ruang kosong di antara kotak input dan span, tetapi kosong ini haruslah jarak keseluruhan komponen, jadi jarak harus digunakan di bawah komponen dan bukannya antara elemen komponen. </p> <p>Bagaimana saya boleh mengelakkan masalah ini dan mengekalkan atribut <kod>...rest</code> </p> <p>Nota: Selain <kod>style</code>, anda juga boleh menggunakan <code>className</code>, <code>id</code>, <code> konteks ;diperlukan</kod>dll. </p>
P粉619896145P粉619896145414 hari yang lalu611

membalas semua(1)saya akan balas

  • P粉511896716

    P粉5118967162023-09-02 12:25:33

    Anda boleh mengatasinya daripada rest中提取出style属性,然后删除其margin属性(之前设置的),并用您自定义的marginBottom: 45.

    const Input = ({ name, style, ...rest }) => {
      const { margin, ...restStyles } = style;
      const newStyles = {
        ...restStyles,
        marginBottom: 45,
      };
    
      return (
          <div>
            <input type="text" name={name} {...rest} style={newStyles} />
                                                   // ^^^^^^^^^ 应用新样式
            {errors && <span>错误:请添加您的姓名</span>}
          </div>
      );
    };

    balas
    0
  • Batalbalas