reactjs - 如何在reactjs的地图功能中连接
问题描述
在下面的代码中,concat 正在替换数组中的值,而不是将其推送到反应中。
export default class Newsfeed extends Component {
constructor(props, context) {
super(props, context);
this.imagemodal = this.imagemodal.bind(this)
this.state = {
imageArray:[],
myimage:[{id:1,media:[{url:xyz},{url:abc}},
{id:2, media:[{url:xyz}, {url:abc}]
}
this.state.myimage.map((myimage) => {
if(someId === myimage.id){
myimage.media.map((media)=>{
this.setState({
imageArray:this.state.imageArray.concat([media.url]),
showimageslider:true,
sid:sid
},() =>console.log(this.state.imageArray.length))
})
}
})
imageArray 是在写入数组而不是连接它
在这方面帮助我..
解决方案
setState
函数是异步的。您可以尝试以下方法
let mediaURLs = [];
this.state.myimage.map((myimage) => {
if(someId === myimage.id){
myimage.media.map((media)=>{
mediaURLs.push(media.url);
})
}
})
mediaURLs = mediaURLs.concat(this.state.imageArray);
this.setState({
imageArray:mediaURLs,
showimageslider:true,
sid:sid
},() =>console.log(this.state.imageArray.length))
推荐阅读
- c++ - 如何访问加载到 ID3D11ShaderResourceView 中的动画 GIF 的各个帧?
- javascript - 将数字数组转换为大数的数字会忽略一些数字
- python - 如何在python中将50显示为5√2的平方根
- javascript - JavaScript中的正则表达式,我可以只替换内部特定组而不是完整字符串吗?
- jmeter - 如何调整 JMeter 重复请求?
- sql - SQL 根据 CASE 语句选择行
- csv - 解析 CSV 文件并按行进行 API 调用的最佳数据处理软件
- api - People.get 的 People api 没有获取其他用户的姓名、照片
- php - 在 SQL 中获取不带索引的 show create table 查询
- python - Python Plotly Dash 下拉列表为散点图添加“全选”