Неожиданный токен, ожидаемый «=>» в React Native

#react-native #react-native-android #arrow-functions

#react-native #react-native-android #стрелка-функции

Вопрос:

Я новичок в React Native и поэтому не знаком с использованием функции Arrow . Я пробую этот код, чтобы получить разрешение Wi-Fi.

Мой код

 import { PermissionsAndroid } from "react-native";

async componentDidMount() {
  await this.askForUserPermission();
}

async askForUserPermission()
{
  try{
    const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
      {
        title: "Wifi Networks",
        message: "We need your permission to access wifi networks"
      }
    );
    if (granted === PermissionsAndroid.RESULTS.GRANTED){
      console.log("Thank you for your permission! :)");
    }
    else{
      console.log("You will not be able to retrieve wifi networks list");
    }
  }
  catch (err)
  {
    console.warn(err);
  }
}
 

Пожалуйста, помогите мне.

Комментарии:

1. вам нужно опубликовать полученную ошибку, сделать снимок экрана с ошибкой, которую она выдает

Ответ №1:

Ожидается, что componentDidMount() будет находиться внутри класса as. Что-то похожее на это будет работать.

 class someComponent extends React.Component {
  componentDidMount() {
    return this.askForUserPermission();
  }

  async askForUserPermission() {
    // Other code abbreviated.
  }
};

export default someComponent;
 

Ответ №2:

Добавление к другому ответу:

компилятор в основном просит вас поместить => , потому что, когда вы создаете автономную функцию (не в классе), она ожидает либо одну из этих:

 async function myFunction(){
  // implementations...
}

myFunction = async () =>{
  // implementations...
}
 

Если только вы не определяете эти функции внутри компонента класса, чтобы они были определены как экземпляры этого класса (т. Е. Нет Необходимости добавлять function к нему ключевое слово)