Javascript 使用静态React函数返回的值
我正在尝试在一个支持javascript Ecmascript 6的React+网页包项目中执行以下操作:Javascript 使用静态React函数返回的值,javascript,reactjs,callback,webpack,ecmascript-6,Javascript,Reactjs,Callback,Webpack,Ecmascript 6,我正在尝试在一个支持javascript Ecmascript 6的React+网页包项目中执行以下操作: class ApiCalls extends React.Component{ static uploadFiles(files) { // upload code if(success) { return(true, message); } else { return(false, message); } } } e
class ApiCalls extends React.Component{
static uploadFiles(files) {
// upload code
if(success) {
return(true, message);
}
else {
return(false, message);
}
}
}
export default ApiCalls;
然后在我的调用组件中,我调用如下方法:
import ApiCalls from './ApiCalls';
class HomePage extends React.Component {
...
handlePost(files) {
ApiCalls.uploadFiles(files) = ((success, message) => {
if (success) {
console.log('Success! ' + message);
}
else {
console.log('Error! ' + message);
}
}
}
...
render()
...
}
export default HomePage;
handlePost(files) {
ApiCalls.uploadFiles(files, (success, message) => {
if (success) {
console.log('Success! ' + message);
}
else {
console.log('Error! ' + message);
}
})
}
static uploadFiles(files, target) { //target will be that callback function
// upload code
if(success) {
target(true, message); //call that function and pass the parameter
}
else {
target(false, message);
}
}
使用上述代码,我得到以下错误:
Invalid left-hand side in assignment expression
箭头指向顶点
我做错了什么?我认为,您以错误的方式使用了
回调函数
,将函数传递给静态函数,成功后,使用参数调用该函数,如下所示:
import ApiCalls from './ApiCalls';
class HomePage extends React.Component {
...
handlePost(files) {
ApiCalls.uploadFiles(files) = ((success, message) => {
if (success) {
console.log('Success! ' + message);
}
else {
console.log('Error! ' + message);
}
}
}
...
render()
...
}
export default HomePage;
handlePost(files) {
ApiCalls.uploadFiles(files, (success, message) => {
if (success) {
console.log('Success! ' + message);
}
else {
console.log('Error! ' + message);
}
})
}
static uploadFiles(files, target) { //target will be that callback function
// upload code
if(success) {
target(true, message); //call that function and pass the parameter
}
else {
target(false, message);
}
}
现在像这样编写静态函数
:
import ApiCalls from './ApiCalls';
class HomePage extends React.Component {
...
handlePost(files) {
ApiCalls.uploadFiles(files) = ((success, message) => {
if (success) {
console.log('Success! ' + message);
}
else {
console.log('Error! ' + message);
}
}
}
...
render()
...
}
export default HomePage;
handlePost(files) {
ApiCalls.uploadFiles(files, (success, message) => {
if (success) {
console.log('Success! ' + message);
}
else {
console.log('Error! ' + message);
}
})
}
static uploadFiles(files, target) { //target will be that callback function
// upload code
if(success) {
target(true, message); //call that function and pass the parameter
}
else {
target(false, message);
}
}
非常感谢你,工作做得很好!帮我省去了很多头痛。顺便问一下,像Apicall那样制作一个没有任何渲染部分的react组件是一种不好的做法,还是正常的做法?我认为,这是一种不好的做法,如果该组件不包含任何ui部分,那么就不要将其制作成
react
组件,只需创建一个包含函数
的文件,并使用模块导出所有函数。导出
并根据情况以相同的方式调用函数:)