reactjs - 使用钩子更新返回的 json
问题描述
我最初显示基于“item.crime1”的 JSON,但我想根据我的 onChangeCrime 函数更新“crime1”。这是一种工作,但它似乎被延迟了。我是钩子的新手,所以我怀疑可能是这样。
api.js
axios.get(apiCall)
.then(res => {
const x = res.data.results;
setState((prevState) => ({ ...prevState, totalData: x }))
x.sort(function (a, b) {
return a.year - b.year;
});
const data = {
labels: x.map(item => item.year),
datasets: [{
data: x.map(item => item.crime1)
}],
}
setState((prevState) => ({ ...prevState, isLoading: false, dataSort: data }));
})
.catch(error => {
console.log("error...", error)
})
const onChangeCrime = (e) => {
let val = e.target.value;
setState((prevState) => ({ ...prevState, sortByCrime: val }));
let x = totalData;
x.sort(function (a, b) {
return a.year - b.year;
});
const data = {
labels: x.map(item => item.year),
datasets: [{
data: x.map(item => item[sortByCrime])
}],
}
setState((prevState) => ({ ...prevState, isLoading: false, dataSort: data }));
}
渲染.js
<div>
<select name="sortByCrime" value={sortByCrime} onChange={(e) => onChangeCrime(e)}>
<option value="crime1">All Crime</option>
<option value="murder">Murder</option>
</select>
<Line data={dataSort} />
</div>
解决方案
推荐阅读
- c++ - 这个 std::set 初始化是如何工作的?
- javascript - 更改地图中的标记
- c++ - Opencv:是否有标准/正确的方法来返回矩阵与返回参数
- c++ - 在 C++ 中动态转换一个**数组
- html - 移动设备 div 中图像的位置
- reactjs - React 对象作为 React 子错误无效
- reactjs - Semantic-UI-React Reveal 不工作
- batch-file - 选择命令在批处理文件 windows xp 中不起作用
- javascript - 从大型 json 数据集中创建对象数组
- python - ValueError:检查目标时出错:预期 conv2d_3 的形状为 (1,58,58),但得到的数组的形状为 (1,64,64)