【发布时间】:2017-12-28 01:27:38
【问题描述】:
我有显示在网页上的 JSON 虚拟数据,并带有一个搜索框,可根据输入的关键字过滤数据。以前,在制作filteredJson之前,所有的数据都显示得很好。但是,现在什么都没有显示。怎么了?
最终,我想将数据提交给另一个函数,该函数包含在我单击按钮时呈现表格。考虑到这一点,我应该在onSubmit()里面做什么?
JSON:
let barang = [{
"id" : "001",
"nama_barang" : "bolu kuwuk",
"harga" : 10000,
"gambar" : bolukuwuk},
{
"id" : "002",
"nama_barang" : "bolu kering",
"harga" : 12000,
"gambar" : bolukering
}
];
和班级:
constructor(props) {
super(props)
this.state = {
json: [],
search: ''
}
}
componentDidMount() {
this.setState((prevState) => {
return {
json: barang
}
})
}
updateSearch(event){
this.setState({search : event.target.value.substr(0,20)});
}
render() {
let filteredJson = this.state.json.filter(
(data) => {
data.nama_barang.indexOf(this.state.search) !== -1;
}
);
return (
<div>
<div className="field has-addons">
<div className="control">
<input className="input" type="text" value={this.state.search} onChange={this.updateSearch.bind(this)} placeholder="Cari Barang . . . "/>
</div>
<div className="control">
<a className="button is-info">
<i className="fa fa-search"></i>
</a>
</div>
</div>
<section className="products">
{filteredJson.map((data, i) => {
return (
<div className="product-card" key={i}>
<div className="product-image">
<img src={ data.gambar }/>
</div>
<div className="product-info">
<h5>{data.nama_barang}</h5>
<h6>{data.harga}</h6>
<p>Masukkan Jumlah yang dibeli : </p><input type="number"/><br/><br/>
<button className="button is-success btn-product" onClick={this.onSubmit}><i className="fa fa-shopping-cart"></i> Beli</button>
</div>
</div>);
})}
</section>
</div>
);
}
}
【问题讨论】:
标签: javascript json reactjs frontend