我尝试导入文件( ChildFile ),其中包含变量( testNumber )和< strong>功能( changeNumber())。 功能应将( testNumber )增加1.此( ChildFile )由文件(< EM> ConsumerFile )。在渲染内部,我尝试调用函数( changeNumber())。
预期结果 testNumber 增加1,结果为124
实际结果 testNumber 在函数调用之前和之后是123
信息: 我需要以下应用程序结构 - &gt; ConsumerFile需要处于结构中。没有setState可能(在我的特定情况下,我尝试为不同的类定义smth。)
这两个文件:
ChildFile
let testNumber = 123;
const changeNumber = () => {
console.log(testNumber); //123
testNumber = testNumber + 1;
console.log(testNumber); //124
}
var ChildFile= {
testNumber: testNumber,
changeNumber: changeNumber
};
export {ChildFile};
&#13;
ConsumerFile
import { ChildFile } from '....ChildFile';
class ConsumeClass extends Component {
constructor() {
super();
}
render() {
console.log(ChildFile.testNumber); //123
ChildFile.changeNumber();
console.log(ChildFile.testNumber); //123 -> Here it should be 124
return (
<div/>
);
}
}
export default ConsumeClass;
&#13;
答案 0 :(得分:1)
使用
var ChildFile= {
testNumber: testNumber,
changeNumber: changeNumber
};
您正在创建一个名为ChildFile
的新对象,其属性testNumber
的值为testNumber
。但是在您的方法中,您修改原始全局变量而不是属性。
这样可行:
let testNumber = 123;
var ChildFile = {
testNumber: testNumber,
};
const changeNumber = () => {
console.log(testNumber); //123
ChildFile.testNumber = ChildFile.testNumber + 1;
console.log(testNumber); //124
}
ChildFile.changeNumber = changeNumber;
export {ChildFile};
但你最好使用class
。