cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menambah sifat secara dinamik berdasarkan keadaan dalam komponen React?

<p>Adakah terdapat cara untuk menambah sifat pada komponen React hanya apabila syarat tertentu dipenuhi? </p> <p>Saya perlu menambah atribut yang diperlukan dan readOnly pada elemen borang berdasarkan syarat dalam panggilan Ajax yang diberikan selepas itu, tetapi saya tidak tahu bagaimana untuk menyelesaikan masalah ini kerana <code>readOnly="false"< /code> adalah berbeza sepenuhnya daripada Atribut yang ditinggalkan adalah berbeza. </p> <p>Contoh di bawah sepatutnya menggambarkan apa yang saya mahukan, tetapi ia tidak berkesan. </p> <blockquote> <p>(Ralat penghuraian: pengecam yang tidak dijangka)</p> </blockquote> <pre class="brush:js;toolbar:false;">fungsi MyInput({diperlukan}) { kembalikan <input classname="foo" {isRequired ? "required" : ""} /> } </pra> <p><br /></p>
P粉665427988P粉665427988585 hari yang lalu723

membalas semua(2)saya akan balas

  • P粉545218185

    P粉5452181852023-08-21 13:12:17

    jawapan juandemarco biasanya betul, tetapi ini ada pilihan lain.

    Bina objek mengikut keinginan anda:

    var inputProps = {
      value: 'foo',
      onChange: this.handleChange
    };
    
    if (condition) {
      inputProps.disabled = true;
    }

    Gunakan hamparan untuk rendering, dan anda juga boleh memilih untuk menghantar prop lain.

    <input
        value="这个值会被inputProps覆盖"
        {...inputProps}
        onChange={overridesInputProps}
     />

    balas
    0
  • P粉863295057

    P粉8632950572023-08-21 11:18:48

    Nampaknya, untuk sesetengah sifat, jika nilai yang dihantar kepada React bukan nilai sebenar, React akan secara bijak menghilangkan sifat tersebut. Contohnya:

    const InputComponent = function() {
        const required = true;
        const disabled = false;
    
        return (
            <input type="text" disabled={disabled} required={required} />
        );
    }

    Anda akan mendapat:

    <input type="text" required>

    Kemas kini: Jika sesiapa ingin tahu tentang bagaimana dan mengapa ini berlaku, anda boleh mendapatkan butiran dalam kod sumber ReactDOM, khususnya di baris 30 dan 167 fail DOMProperty.js.

    balas
    0
  • Batalbalas