В React, как мне избежать тега Hash из API Last.fm - PullRequest
0 голосов
/ 07 мая 2018

Я создаю приложение React, используя Last.fm API. Они использовали тег # в ключе для ссылок на изображения художника, см. Ниже. К сожалению # сбой React. Я искал в Интернете и не могу найти ничего о том, как избежать этого персонажа. Клавиша «размер» работает О.К.

image
:
Array(6)
0
  :
{#text: "https://lastfm- 
img2.akamaized.net/i/u/34s/4b89e84da385d17e6b46c489f46d4522.png",
 size: 
"small"}
1
:
{#text: "https://lastfm- 
img2.akamaized.net/i/u/64s/4b89e84da385d17e6b46c489f46d4522.png",
 size: 
"medium"}
 ..........................

Код реакции ниже:

import React, { Component } from 'react';
import './App.css';
import Title from './components/Title.js';
import Form from './components/Form.js';
import Music from './components/Music.js';

const API_KEY = '.....';
//const SECRET = '......';

  class App extends Component {
     state = {
     name: undefined,
     bio: undefined,
     listeners: undefined,
     image: undefined,
     error: undefined
   }
getMusic = async (e) => {
e.preventDefault();
 const name=e.target.elements.artist.value;
 const api_call = await fetch(`http://ws.audioscrobbler.com/2.0/? 
 method=artist.getinfo&artist=${name}&api_key=${API_KEY}&format=json`)
 const data = await api_call.json();
 console.log(data);
 this.setState({
   name: data.artist.name,
   bio: data.artist.bio.summary,
   image: data.artist.image[1]#text,
   error: ""
  });
  }
  render() {
    return (
      <div className="App">
       <Title />
       <Form getMusic={this.getMusic}/>
       <Music name={this.state.name}
             bio={this.state.bio}
             image={this.state.image}
             error={this.state.error}
       />
      </div>
    );
  }
}

export default App;

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 07 мая 2018

Просто используйте текстовый идентификатор:

data.artist.image[1]['#text']

Если вы хотите использовать точечный синтаксис, ключ должен быть действительным идентификатором Javascript.

...