I have this in my state:
fbPages:{'123':'Teste','142':'Teste2'}
But I need something like this dynamically:
async getFbPages(){
var fbPages = {}
await this.props.resultPosts.facebookPagesList.data.map(item => {
fbPages.push({item.id: item.name});
});
this.setState({fbPages});
console.log(this.state);
}
I got a error here fbPages.push({item.id: item.name});
, how can I do this?
I have this in my state:
fbPages:{'123':'Teste','142':'Teste2'}
But I need something like this dynamically:
async getFbPages(){
var fbPages = {}
await this.props.resultPosts.facebookPagesList.data.map(item => {
fbPages.push({item.id: item.name});
});
this.setState({fbPages});
console.log(this.state);
}
I got a error here fbPages.push({item.id: item.name});
, how can I do this?
-
fbPages
should be an array and not an object. – Hemerson Carlin Commented Sep 5, 2017 at 14:07 -
declare
fbPages
as an array like this:var fbPages = []
– Mayank Shukla Commented Sep 5, 2017 at 14:08
3 Answers
Reset to default 3You are using push
but fbPages
is not an array.
If you want to add another property to the object do fbPages[item.id] = item.name;
instead
var fbPages = {};
await this.props.resultPosts.facebookPagesList.data.map(item => {
fbPages[item.id] = item.name;
});
Unless you wanted an array to begin with, then declare it as such instead var fbPages = []
var fbPages = [];
await this.props.resultPosts.facebookPagesList.data.map(item => {
fbPages.push({
item.id: item.name
});
});
Please find below sample snippet:
const items = [{
id:'123',
name:'Teste'
},{
id: '142',
name: 'Teste2'
}];
let fbPages = []; // This should be array.
items.map((item)=> {
fbPages.push({
[item.id]: item.name
})
});
console.log(fbPages);
Object does not support push method you need to define fbPages
to array
var fbPages= [];
fbPages[0] ={'123':'Teste','142':'Teste2'}
And in Function
async getFbPages(){
var fbPages= [];
await this.props.resultPosts.facebookPagesList.data.map(item => {
fbPages.push({item.id: item.name});
});
this.setState({fbPages});
console.log(this.state);
}