Saya meneruskan 2 nilai ke komponen anak:
- Daftar objek untuk ditampilkan
- hapus fungsi.
Saya menggunakan fungsi .map () untuk menampilkan daftar objek saya (seperti pada contoh yang diberikan pada halaman tutorial bereaksi), tetapi tombol pada komponen tersebut mengaktifkan onClick
fungsi, pada render (seharusnya tidak menyala pada waktu render). Kode saya terlihat seperti ini:
module.exports = React.createClass({
render: function(){
var taskNodes = this.props.todoTasks.map(function(todo){
return (
<div>
{todo.task}
<button type="submit" onClick={this.props.removeTaskFunction(todo)}>Submit</button>
</div>
);
}, this);
return (
<div className="todo-task-list">
{taskNodes}
</div>
);
}
});
Pertanyaan saya adalah: mengapa onClick
fungsi menyala saat render dan bagaimana membuatnya tidak?
javascript
reactjs
button
onclick
dom-events
Stralos
sumber
sumber
onClick={() => this.props.removeTaskFn(todo)}
Alih-alih memanggil fungsi, ikat nilai ke fungsi:
MDN ref: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind
sumber
Nilai untuk
onClick
atribut Anda harus berupa fungsi, bukan panggilan fungsi.sumber
Bagi mereka yang tidak menggunakan fungsi panah tetapi sesuatu yang lebih sederhana ... Saya menemukan ini ketika menambahkan tanda kurung setelah fungsi signOut saya ...
ganti ini
<a onClick={props.signOut()}>Log Out</a>
dengan ini
<a onClick={props.signOut}>Log Out</a>
...! 😆sumber
JSX digunakan dengan ReactJS karena sangat mirip dengan HTML dan memberikan programmer merasa menggunakan HTML sedangkan pada akhirnya transpiles ke file javascript.
Gunakan -
yang berarti-
sumber
JSX akan mengevaluasi ekspresi JavaScript dalam kurung kurawal
Dalam hal ini,
this.props.removeTaskFunction(todo)
dipanggil dan nilai kembali ditugaskan untukonClick
Apa yang harus Anda sediakan
onClick
adalah fungsi. Untuk melakukan ini, Anda bisa membungkus nilai dalam fungsi anonim.sumber
Saya memiliki masalah serupa, kode saya adalah:
Di mana seharusnya
dalam RenderRadioInput
Itu memperbaiki masalah bagi saya.
sumber