Using the map function in React Native
I am trying to render markers on a MapView for each position stored inside my state array called markers, but for some reason when I try to reference the state inside the map function I get undefined. I checked for syntax errors but couldn't find the problem. Basically every time a user changes his/her location I want to set their marker to their new location. The error occurs when trying to use the map function inside the render() function. I have posted a picture of the error below.
import React, {Component} from 'react';
import {AppRegistry,Text,View,StyleSheet} from 'react-native'
import Component1 from`enter code here` './Component1'
import Component3 from './Component3'
import Component4 from './Component4'
import MapView from 'react-native-maps'
export default class myapp extends Component{
constructor(props){
super();
this.state ={
markers: [
{
watchId: 0,
latitude:3,
longitude:2
},
{
watchId: 2,
latitude:3,
longitude:2
}
]
}
}
componentDidMount(){
navigator.geolocation.watchPosition((position)=>{
var lat = parseFloat(position.coords.latitude)
var long = parseFloat(position.coords.longitude)
var id = parseFloat(position.coords.watchId)
var found = false
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
})});
if(found === false){
this.setState({markers:[{watchId:id,latitude:lat,longitude:long}]});
}
},null,{timeout:0,distanceFilter:0})
}
render(){
return(
<View>
<MapView style={{height:350,width:350,marginTop:300,alignSelf:'center'}}
initialRegion={{
latitude: 37.33,
longitude: -121.4024,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
}}
showsUserLocation={true}
followsUserLocation={true}
showsMyLocationButton={true}
>
{this.state.markers.map(marker =>{
return(
<MapView.Marker
coordinate={{latitude:marker.latitude,longitude:marker.longitude}}
title={"title"}
description={"description ey"}
/>
);
})}
</MapView>
</View>
);
}
}
AppRegistry.registerComponent('myapp',()=>myapp);
javascript react-native react-native-maps
add a comment |
I am trying to render markers on a MapView for each position stored inside my state array called markers, but for some reason when I try to reference the state inside the map function I get undefined. I checked for syntax errors but couldn't find the problem. Basically every time a user changes his/her location I want to set their marker to their new location. The error occurs when trying to use the map function inside the render() function. I have posted a picture of the error below.
import React, {Component} from 'react';
import {AppRegistry,Text,View,StyleSheet} from 'react-native'
import Component1 from`enter code here` './Component1'
import Component3 from './Component3'
import Component4 from './Component4'
import MapView from 'react-native-maps'
export default class myapp extends Component{
constructor(props){
super();
this.state ={
markers: [
{
watchId: 0,
latitude:3,
longitude:2
},
{
watchId: 2,
latitude:3,
longitude:2
}
]
}
}
componentDidMount(){
navigator.geolocation.watchPosition((position)=>{
var lat = parseFloat(position.coords.latitude)
var long = parseFloat(position.coords.longitude)
var id = parseFloat(position.coords.watchId)
var found = false
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
})});
if(found === false){
this.setState({markers:[{watchId:id,latitude:lat,longitude:long}]});
}
},null,{timeout:0,distanceFilter:0})
}
render(){
return(
<View>
<MapView style={{height:350,width:350,marginTop:300,alignSelf:'center'}}
initialRegion={{
latitude: 37.33,
longitude: -121.4024,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
}}
showsUserLocation={true}
followsUserLocation={true}
showsMyLocationButton={true}
>
{this.state.markers.map(marker =>{
return(
<MapView.Marker
coordinate={{latitude:marker.latitude,longitude:marker.longitude}}
title={"title"}
description={"description ey"}
/>
);
})}
</MapView>
</View>
);
}
}
AppRegistry.registerComponent('myapp',()=>myapp);
javascript react-native react-native-maps
add a comment |
I am trying to render markers on a MapView for each position stored inside my state array called markers, but for some reason when I try to reference the state inside the map function I get undefined. I checked for syntax errors but couldn't find the problem. Basically every time a user changes his/her location I want to set their marker to their new location. The error occurs when trying to use the map function inside the render() function. I have posted a picture of the error below.
import React, {Component} from 'react';
import {AppRegistry,Text,View,StyleSheet} from 'react-native'
import Component1 from`enter code here` './Component1'
import Component3 from './Component3'
import Component4 from './Component4'
import MapView from 'react-native-maps'
export default class myapp extends Component{
constructor(props){
super();
this.state ={
markers: [
{
watchId: 0,
latitude:3,
longitude:2
},
{
watchId: 2,
latitude:3,
longitude:2
}
]
}
}
componentDidMount(){
navigator.geolocation.watchPosition((position)=>{
var lat = parseFloat(position.coords.latitude)
var long = parseFloat(position.coords.longitude)
var id = parseFloat(position.coords.watchId)
var found = false
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
})});
if(found === false){
this.setState({markers:[{watchId:id,latitude:lat,longitude:long}]});
}
},null,{timeout:0,distanceFilter:0})
}
render(){
return(
<View>
<MapView style={{height:350,width:350,marginTop:300,alignSelf:'center'}}
initialRegion={{
latitude: 37.33,
longitude: -121.4024,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
}}
showsUserLocation={true}
followsUserLocation={true}
showsMyLocationButton={true}
>
{this.state.markers.map(marker =>{
return(
<MapView.Marker
coordinate={{latitude:marker.latitude,longitude:marker.longitude}}
title={"title"}
description={"description ey"}
/>
);
})}
</MapView>
</View>
);
}
}
AppRegistry.registerComponent('myapp',()=>myapp);
javascript react-native react-native-maps
I am trying to render markers on a MapView for each position stored inside my state array called markers, but for some reason when I try to reference the state inside the map function I get undefined. I checked for syntax errors but couldn't find the problem. Basically every time a user changes his/her location I want to set their marker to their new location. The error occurs when trying to use the map function inside the render() function. I have posted a picture of the error below.
import React, {Component} from 'react';
import {AppRegistry,Text,View,StyleSheet} from 'react-native'
import Component1 from`enter code here` './Component1'
import Component3 from './Component3'
import Component4 from './Component4'
import MapView from 'react-native-maps'
export default class myapp extends Component{
constructor(props){
super();
this.state ={
markers: [
{
watchId: 0,
latitude:3,
longitude:2
},
{
watchId: 2,
latitude:3,
longitude:2
}
]
}
}
componentDidMount(){
navigator.geolocation.watchPosition((position)=>{
var lat = parseFloat(position.coords.latitude)
var long = parseFloat(position.coords.longitude)
var id = parseFloat(position.coords.watchId)
var found = false
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
})});
if(found === false){
this.setState({markers:[{watchId:id,latitude:lat,longitude:long}]});
}
},null,{timeout:0,distanceFilter:0})
}
render(){
return(
<View>
<MapView style={{height:350,width:350,marginTop:300,alignSelf:'center'}}
initialRegion={{
latitude: 37.33,
longitude: -121.4024,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
}}
showsUserLocation={true}
followsUserLocation={true}
showsMyLocationButton={true}
>
{this.state.markers.map(marker =>{
return(
<MapView.Marker
coordinate={{latitude:marker.latitude,longitude:marker.longitude}}
title={"title"}
description={"description ey"}
/>
);
})}
</MapView>
</View>
);
}
}
AppRegistry.registerComponent('myapp',()=>myapp);
javascript react-native react-native-maps
javascript react-native react-native-maps
asked Jan 18 at 23:41
Parth PatelParth Patel
2017
2017
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You need to return the marker in componentDidMount
.
For example:
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
return marker
})});
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54262788%2fusing-the-map-function-in-react-native%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You need to return the marker in componentDidMount
.
For example:
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
return marker
})});
add a comment |
You need to return the marker in componentDidMount
.
For example:
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
return marker
})});
add a comment |
You need to return the marker in componentDidMount
.
For example:
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
return marker
})});
You need to return the marker in componentDidMount
.
For example:
this.setState({markers: this.state.markers.map(marker =>{
if(marker.watchId === id){
found = true
marker.latitude = lat
marker.longitude = long
}
return marker
})});
answered Jan 19 at 0:56
Jordan DanielsJordan Daniels
49239
49239
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54262788%2fusing-the-map-function-in-react-native%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown