I'm building a small React ponents (pile with Babel). I have to access property with a dash inside the name.
this.setState({
newArtist: {
birthdate: artist.life-span.begin
}
});
This code throw an error Uncaught ReferenceError: span is not defined
After some research, I found out that I need to use a alternative notatio using bracket. ['life-span']
this.setState({
newArtist: {
birthdate: artist['life-span']begin
}
});
But this one make Babel to throw a syntax error.
bundle.js:1 SyntaxError: /file/path: Unexpected token, expected , (24:38) while parsing file
So I'm stuck here.
My babel configuration is quite lite, only use the es2015 & react preset.
Any idea what it could be ?
I'm building a small React ponents (pile with Babel). I have to access property with a dash inside the name.
this.setState({
newArtist: {
birthdate: artist.life-span.begin
}
});
This code throw an error Uncaught ReferenceError: span is not defined
After some research, I found out that I need to use a alternative notatio using bracket. ['life-span']
this.setState({
newArtist: {
birthdate: artist['life-span']begin
}
});
But this one make Babel to throw a syntax error.
bundle.js:1 SyntaxError: /file/path: Unexpected token, expected , (24:38) while parsing file
So I'm stuck here.
My babel configuration is quite lite, only use the es2015 & react preset.
Any idea what it could be ?
Share Improve this question asked Nov 18, 2016 at 13:51 Dry-macaronyDry-macarony 676 bronze badges 2-
4
Add
.
beforebegin
-artist['life-span'].begin
– Oleksandr T. Commented Nov 18, 2016 at 13:53 -
@AlexanderT. Or for consistency:
artist['life-span']['begin']
– Mr. Polywhirl Commented Nov 18, 2016 at 13:55
2 Answers
Reset to default 11birthdate: artist['life-span'].begin
instead of birthdate: artist['life-span']begin
You must understand basics like that: properties must be qouted and rounded by square brackets, or start from dot. So in properties chain:
var propNameInVar = "prop5";
object ["prop1"] .prop2 [3] .prop4 [propNameInVar] .prop6