Синтаксическая ошибка: Неожиданный токен, ожидаемый » , «

#javascript #ios #reactjs #react-native #jsx

Вопрос:

Я получаю эту синтаксическую ошибку в react native: «Синтаксическая ошибка: Неожиданный токен, ожидаемый «,» »

 return(
    <View style={ gStyle.main }>
      <Modal visible = { modalWindow }>
        <View style={ gStyle.main }>
          <Ionicons name="close" size={30} color="black" style = {gStyle.iconClose} onPress = {() => setModalWindow(false)}/>
          <Text style = {gStyle.iconTitle}>Добавить статью</Text>
          <Form />
        </View>
      </Modal>
      <Ionicons name="add" size={34} color="black" style = {gStyle.iconAdd} onPress = {() => setModalWindow(true)}/>
      <Text style = { [gStyle.title, styles.head]}>Лента</Text>
      <FlatList data = {news} renderItem = {({item}) => (
        <TouchableOpacity style = {styles.item} onPress = {() => navigation.navigate('FullInfo', item )}>
          <Image style = {gStyle.image} source = {{uri: item.img}}/>
          <Text style = {styles.title}>{item.name}</Text>
          <Text style = {styles.anons}>{item.anons}</Text>
      </TouchableOpacity>
      )} />
    </View>
  );
}
 

Я тоже не понимаю сообщение об ошибке, что конкретно оно означает, когда в нем говорится «ожидается»?

Ошибка

Обновить

 import React, {useState} from 'react';
import { StyleSheet, View, Text, TouchableOpacity, FlatList, Image, Modal } from 'react-native';
import { gStyle } from '../styles/style';
import { Ionicons } from '@expo/vector-icons';
import Form from './Form';

export default function Main({ navigation }) {

  const [news, setNews] = useState([
    {name: 'Google', anons: 'Something interesting', full: 'Google Fulling page', key: '1', img: 'https://static.zara.net/photos///2020/I/0/1/p/4341/757/800/2/w/1126/4341757800_6_2_1.jpg'},
    {name: 'Yahoo', anons: 'Something didn`t interesting', full: 'Yahoo Fulling page', key: '2', img: 'https://i.pinimg.com/564x/89/1d/83/891d833d89de653904500547b6257218.jpg'},
    {name: 'Yandex', anons: 'Something bake interesting', full: 'Yandex Fulling page', key: '3', img:'http://ideaswood.selbermachendeko.com/wp-content/uploads/2019/10/8-einladende-coole-Ideen-Holzbearbeitungskuche-Tiny-House-Holzbearbeitungsschreib-…-WoodWorking.jpg'}
  ]);

  const [modalWindow, setModalWindow] = useState(false); 

  const addArticle = (article => {
    setNews((list) => {
      article.key = Math.random().toString();
      return [
        article,
        ...list,
      ]
    });
    setModalWindow(false);
  }

  return(
    <View style={ gStyle.main }>
      <Modal visible = { modalWindow }>
        <View style={ gStyle.main }>
          <Ionicons name="close" size={30} color="black" style = {gStyle.iconClose} onPress = {() => setModalWindow(false)}/>
          <Text style = {gStyle.iconTitle}>Добавить статью</Text>
          <Form />
        </View>
      </Modal>
      <Ionicons name="add" size={34} color="black" style = {gStyle.iconAdd} onPress = {() => setModalWindow(true)}/>
      <Text style = { [gStyle.title, styles.head]}>Лента</Text>
      <FlatList data = {news} renderItem = {({item}) => (
        <TouchableOpacity style = {styles.item} onPress = {() => navigation.navigate('FullInfo', item )}>
          <Image style = {gStyle.image} source = {{uri: item.img}}/>
          <Text style = {styles.title}>{item.name}</Text>
          <Text style = {styles.anons}>{item.anons}</Text>
      </TouchableOpacity>
      )} />
    </View>
  );
}


const styles = StyleSheet.create({
  head: {
    marginBottom: 5,
  },
  item: {
    width: '100%',
    marginBottom: 10,
  },
  title: {
    fontFamily: 'mn-bold',
    fontSize: 22,
    textAlign: 'center',
    marginTop: 10,
    color: '#702573',
  },
  anons: {
    fontFamily: 'mn-regular',
    fontSize: 16,
    textAlign: 'center',
    marginTop: 5,
    color: '#111111',
  }
});

 

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

1. Можете ли вы вставить код, который находится над этим оператором возврата ? ?

2. В какой строке отображается ошибка?

3. Обновлено с полным кодом

4. Ошибка в строке возврата (28:2)

Ответ №1:

Удалите открывающие паренты в article аргументе или добавьте закрывающие паренты.

 const addArticle = article => {
  setNews((list) => {
    article.key = Math.random().toString();
    return [article, ...list];
  });
  setModalWindow(false);
}
 

или

 const addArticle = (article) => {
  setNews((list) => {
    article.key = Math.random().toString();
    return [article, ...list];
  });
  setModalWindow(false);
}
 

QnA

Я тоже не понимаю сообщение об ошибке, что конкретно оно означает, когда в нем говорится «ожидается»?

С точки зрения синтаксиса, я предполагаю, что это (линтер?) предполагал, что вы пытаетесь использовать оператор запятой.

Оператор запятой (,) вычисляет каждый из своих операндов (слева направо) и возвращает значение последнего операнда. Это позволяет создать составное выражение, в котором вычисляется несколько выражений, причем конечным значением составного выражения является значение самого правого из его выражений-членов. Это обычно используется для предоставления нескольких параметров for циклу.

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

1. Боже, моя беспечность ужасна, спасибо тебе за помощь