如何从任何组件外部调用 React 的 setState 函数(如实用程序函数)?

pur*_*zen 3 javascript reactjs

我有一个应用程序,我想将读取、写入操作移至实用程序文件,即远离组件。我正在尝试这样做。

组件.js

import { saveData } from './utils/fileSave.js';

class App extends Component {
    saveContent() {
        saveData(this.setState, data);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

utils/fileSave.js

const saveData = (setState, data) => {
    setState(data);
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致错误,显示“TypeError:无法读取未定义的属性‘updater’”

不确定这是否是正确的方法。

Yoz*_*ozi 5

看起来您需要setState在将其传递给外部函数之前进行绑定。

saveData(this.setState.bind(this), data);