ReactJSで、特定のAPIを呼び出してJSON配列で動作する単純なアプリケーションを構築しています。次に、配列の結果を表に取り込みます。私が今したいのは、テーブル内の任意の行をクリックし、それらの値を他のコンポーネントに渡すことです。私はonClickを使用して行情報を取得する方法が不思議です。テーブルの行をクリックして行情報を取得しようとしていますreactJS
ここに私のコードです。
class ParentComponent extends Component {
constructor(props){
super(props);
this.state = {data: []};
}
componentDidMount() {
fetch('http://hostname:xxxx/yyyy/zzzz')
.then(function(response) {
return response.json();
})
.then(items=>this.setState({data: items}));
}
fetchAccountDetails() {
}
render(){
var newdata = this.state.data;
return (
<table className="m-table">
<thead>
<tr>
<th>AccountName</th>
<th>ContractValue</th>
</tr>
</thead>
<tbody>
{
newdata.map(function(account, index){
return (
<tr key={index} data-item={account} onClick={this.fetchAccountDetails()}>
<td data-title="Account">{account.accountname}</td>
<td data-title="Value">{account.negotiatedcontractvalue}</td>
</tr>
)
}
)
}
</tbody>
</table>
);
}
}
export default ParentComponent;
忘れました。行にonClickプロパティを追加すると、このエラーが発生します。 'TypeError:http:// localhost:8070/dist/index.js:Array.map(native)の2558:65で未定義のプロパティ 'fetchAccountDetails'を読み取れません。 –
バインディングの問題である、マップの矢印機能を使用して、コードを更新しました –
ありがとうございました。私はこれらの変更を加えました。今、私がページをリフレッシュすると、コンソールで、行をクリックせずにすべての値が出力されます。 'onClick'は動作していないようです。また、私は 'onClick'のfetchAccountDetailsを使用している間インデックスパラメータを追加しました –