我有一个foo发出Ajax请求的函数.我怎样才能从中回复foo?
我尝试从success回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
result = response;
// return response; // <- I tried that one as well
}
});
return result;
}
var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud) 现在我通过这行获取File对象:
file = document.querySelector('#files > input[type="file"]').files[0]
Run Code Online (Sandbox Code Playgroud)
我需要通过基础64中的json发送此文件.我应该怎么做才能将它转换为base64字符串?
JavascriptFileReader对象支持onerror在出现错误时调用的处理程序,但传入的事件是 aProgressEvent并且不包含错误的任何详细信息。
我如何找出实际发生的错误?
我正在创建一个文件输入来选择可以预先可视化的多个图像。
为了处理多个图像,我将它们放入组件状态的数组中,并映射预可视化图像。
但是,当我从输入中选择图像并使用 设置状态时this.setState({imgArray: newArray}),this.state.array.map(image=><img src={image}/>)不会重新渲染所选图像。
代码:
export default class posts extends Component {
state = {
fotos: ["/iconos/img.svg"] // If there are not img selected, it renders one image icon
}
onUploadVarious = e => {
let newArray = []
Object.values(e.target.files).map(file => {
let nuevo = new FileReader()
nuevo.onload = event=> newArray.push(event.target.result)
nuevo.readAsDataURL(file)}
)
this.setState({fotos: newArray}) // the state is set correctly
}
}
Run Code Online (Sandbox Code Playgroud)
使成为:
<div className=" border rounded" style={{"height":"30%", "overflow":"auto"}}>
{this.state.fotos.map(foto =>
<img src={foto||"/iconos/img.svg"} …Run Code Online (Sandbox Code Playgroud) javascript ×4
ajax ×1
asynchronous ×1
base64 ×1
filereader ×1
jquery ×1
reactjs ×1
render ×1
setstate ×1