我有一个完整的组件混乱.现在我传递了一个功能,我一直在尝试一百万件我无法工作的东西.
export default class DatafileUpload extends Component {
initialState = {
fileUploading: false,
fileList: [],
status: 'empty', // 'empty' | 'active' | 'success' | 'exception'
file: {}
}
state = this.initialState
static propTypes = {
userId: PropTypes.string.isRequired,
datasetId: PropTypes.string.isRequired
}
scrubFilename = (filename) => filename.replace(/[^\w\d_\-.]+/ig, '')
requestSignedS3Url = (file) => {
const filename = this.scrubFilename(file.name)
const params = {
userId: this.props.userId,
contentType: file.type,
Key: `${filename}`
};
return api.get('/s3/signUpload', { params })
.then(response => {
return response.data;
})
.catch(error => { …Run Code Online (Sandbox Code Playgroud) 我需要使用一个简单的函数:mysqli_num_rows(),但我想要更多的一般知识答案.
通过面向对象的样式$mysqli_result->num_rows;或程序样式调用此函数之间是否存在任何差异mysqli_num_rows( mysqli_result $result );?
我理解,如此处所解释的, OO 正在访问变量,并且过程调用作为函数工作,但两者都返回相同的东西.
我公司的代码是程序性的,我们正在慢慢迁移到OOP,但它主要是混乱,所以没有任何我可以(或想要)遵循的内部指导.
我有这个代码:
render() {
const props = {
onChange: this.handleChange,
multiple: true,
name: 'datafiles[]',
defaultFileList: this.initialState.fileList,
listType: "text",
onSuccess: (resp, file, xhr) => {
file.status = 'done';
const newDatafile = {
filename: file.name,
s3ObjectKey: `${this.props.userId}/${this.props.datasetId}`,
filesizeBytes: file.size
}
this.props.saveNewDatafile(newDatafile, (saveError, savedJob) => {
//Yadda yadda
})
},
showUploadList: {
showPreviewIcon: true,
showRemoveIcon: true
},
customRequest: customRequest
};
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用customRequest. 如果我不传递该onSuccess函数,则该组件在成功时正常工作。但是当我通过它时,进度条到了最后,但它仍然显示spinner,好像它仍在上传一样。
如何告诉上传组件上传完成?我试图用file.status = 'done'它来修复它,但没有运气。我需要自定义onSuccess函数,以便我可以调用该saveNewDatafile函数。