如何在反应中导入QS

问题描述

我搜索了 [如何在反应中使用qs] ,但是找不到答案。

Qs的官方网站https://www.npmjs.com/package/qs 用法

qs = require('qs');
var assert = require('assert');

var obj = qs.parse('a=c');
assert.deepEqual(obj,{ a: 'c' });

var str = qs.stringify(obj);
assert.equal(str,'a=c');

但是我从没看到require()用于反应。

有人知道这个答案吗?

在axios中传递数组参数时,我需要这个。

解决方法

我的React中有这个相同的问题。

这将起作用:

const qs = require('qs')

这行不通:

import qs from 'qs'

我通过从package-lock.json中删除“ @ types / qs”部分,然后运行来解决了该问题

npm install
,

您不必从项目中卸载 import 'dart:io'; import 'package:firebase_storage/firebase_storage.dart'; import 'package:image_picker/image_picker.dart'; import 'package:permission_handler/permission_handler.dart'; class EditProfilePage extends StatefulWidget { @override _EditProfilePageState createState() => _EditProfilePageState(); } class _EditProfilePageState extends State<EditProfilePage> { bool showPassword = false; String imageUrl; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).scaffoldBackgroundColor,elevation: 1,leading: IconButton( icon: Icon( Icons.arrow_back,color: Colors.orangeAccent,),onPressed: () { Navigator.pop(context); },body: Container( padding: EdgeInsets.only(left: 16,top: 25,right: 16),child: GestureDetector( onTap: () { FocusScope.of(context).unfocus(); },child: ListView( children: [ Text( "Edit Profile",style: TextStyle(fontSize: 25,fontWeight: FontWeight.w500),SizedBox( height: 15,Center( child: Stack( children: [ Container( child: (imageUrl != null) ? Image.network(imageUrl) : Image.asset('assets/background.jpg'),width: 130,height: 130,decoration: BoxDecoration( border: Border.all( width: 4,color: Theme.of(context).scaffoldBackgroundColor),boxShadow: [ BoxShadow( spreadRadius: 2,blurRadius: 10,color: Colors.black.withOpacity(0.1),offset: Offset(0,10)) ],shape: BoxShape.circle,Positioned( bottom: 0,right: 0,child: Container( height: 40,width: 40,decoration: BoxDecoration( shape: BoxShape.circle,border: Border.all( width: 4,color: Theme.of(context).scaffoldBackgroundColor,child: IconButton( icon: Icon(Icons.edit),color: Colors.white,onPressed: () => uploadImage(),)),],SizedBox( height: 35,buildTextField("Full Name","Yeap Wei Kang",false),buildTextField("E-mail","jonywk1103@gmail.com",buildTextField("Password","********",true),buildTextField("Location","Ipoh,Perak",Row( mainAxisAlignment: MainAxisAlignment.spaceBetween,children: [ OutlineButton( padding: EdgeInsets.symmetric(horizontal: 50),shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20)),onPressed: () { Navigator.pop(context); },child: Text("CANCEL",style: TextStyle( fontSize: 14,letterSpacing: 2.2,color: Colors.black)),RaisedButton( onPressed: () { Navigator.pop(context); },padding: EdgeInsets.symmetric(horizontal: 50),elevation: 2,child: Text( "SAVE",style: TextStyle( fontSize: 14,color: Colors.white),) ],) ],); } Widget buildTextField( String labelText,String placeholder,bool isPasswordTextField) { return Padding( padding: const EdgeInsets.only(bottom: 35.0),child: TextField( obscureText: isPasswordTextField ? showPassword : false,decoration: InputDecoration( suffixIcon: isPasswordTextField ? IconButton( onPressed: () { setState(() { showPassword = !showPassword; }); },icon: Icon( Icons.remove_red_eye,color: Colors.grey,) : null,contentPadding: EdgeInsets.only(bottom: 3),labelText: labelText,floatingLabelBehavior: FloatingLabelBehavior.always,hintText: placeholder,hintStyle: TextStyle( fontSize: 16,fontWeight: FontWeight.bold,color: Colors.black,); } uploadImage() async { final _storage = FirebaseStorage.instance; final _picker = ImagePicker(); PickedFile image; //Check Permissions await Permission.photos.request(); var permissionStatus = await Permission.photos.status; if (permissionStatus.isGranted){ //Select Image image = await _picker.getImage(source: ImageSource.gallery); var file = File(image.path); if (image != null){ //Upload to Firebase var snapshot = await _storage.ref() .child('folderName/imageName') .putFile(file); var downloadUrl = await snapshot.ref.getDownloadURL(); setState(() { imageUrl = downloadUrl; }); } else { print('No Path Received'); } } else { print('Grant Permissions and try again'); } } } 。正确的解决方法是使用:

@types/qs
,

运行:

npm install qs

在脚本中,使用:

import Qs from "qs";

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...