Pengendali acara onClick React tidak membenarkan penghantaran nilai secara langsung. Apabila diklik, ia memaparkan objek SyntheticMouseEvent pada konsol. Untuk menghantar nilai dengan berkesan, ikuti penyelesaian berikut:
Gunakan fungsi anak panah:
return ( <th value={column} onClick={() => this.handleSort(column)}> {column} </th> );
Ini mencipta fungsi yang menggunakan handleSort dengan parameter yang dikehendaki.
Ekstrak kod ke dalam subkomponen:
Subkomponen
class TableHeader extends Component { handleClick = () => { this.props.onHeaderClick(this.props.value); }; render() { return ( <th onClick={this.handleClick}> {this.props.column} </th> ); } }
Komponen utama
{this.props.defaultColumns.map(column => ( <TableHeader value={column} onHeaderClick={this.handleSort} /> ))}
Ini memastikan pemaparan semula hanya apabila perlu.
Ikat fungsi pada konteks Komponen:
return ( <th value={column} onClick={this.handleSort.bind(this, column)}> {column} </th> );
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Nilai kepada Acara onClick dalam React JS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!