Как я могу получить ответ в массиве, а не строка Axios.get в реагировать родной? - PullRequest
0 голосов
/ 11 апреля 2019

Я подключаюсь к БД по php-коду, я написал некоторый код для получения данных с помощью axios.get в реагировать на нативный. Но ответ от axios.get - строка, а не массив.

Я пробовал eval (ответ) и JSON.parse (ответ), но не могу преобразовать ответ в массив.

вот мой реагирующий нативный код, он написан в componentDidMount

const mobile = "0912111111";

const data = {

      mobile: mobile
   };
   var headers = {

        'Content-Type': 'application/json'
    }
    axios.get('http://192.168.1.3/Account/family_manage.php',{data:data}, 
    {headers:headers})
    .then((response) => {

   //how to convert response to array of array here
   console.log(eval(response).data);

  })
  .catch(function (error) {
    Alert.alert('error');
    console.log(error);
    });

вот мой код в php backend:

header("Access-Control-Allow-Origin: *");
include "connect.php";

$json = file_get_contents('php://input');
$obj = json_decode($json,true);
$mobile=$obj['mobile'];

$sql = "SELECT box_name,num_box FROM family_box WHERE 
admin_mobile='$mobile'";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_array($result)){

          $myarr[] =array('name'=> $row['box_name'],'num'=>$row['num_box']);
     }


    echo json_encode($myarr);
 } else {
      echo "0 results";
  }

 mysqli_close($conn);

Как я могу получить массив ответов массива и как я могу получить доступ к 'name' или num в данных ответа? спасибо

1 Ответ

1 голос
/ 11 апреля 2019

по оси, вам не нужно преобразовывать данные в stringify, это может быть автоматически сделано, вы можете напрямую использовать это как this.setState({response:response}) и если вы хотите увидеть эти данные на экране для проверки, вы также можете проверить по console.warn(response)

вот пример, который я использовал для своего приложения

  async function getshoppinapi(link) {
      let responseJson = await axios.get(link,{ headers: {"Authorization" : `Bearer ${global.token}`} })
      //let responseJson = response;
      return responseJson;
}
...