内部调用函数从外部响应功能组件

时间:2020-07-27 00:39:02

标签: reactjs

如果需要调用python,我正在将EEL用于python应用

使用Eel,我可以直接从python调用javascript函数

eel.expose(my_javascript_function);
function my_javascript_function(a, b, c, d) {
  if (a < b) {
    console.log(c * d);
  }
}
can be called from the Python side like this...

print('Calling Javascript...')
eel.my_javascript_function(1, 2, 3, 4)  # This calls the Javascript function

现在...我有兴趣通过python更新我的反应内部状态(使用钩子),我认为我可以在Component内编写一个函数并从此处更新状态,我知道这不是“反应方式”,但是有没有办法做到这一点?我认为使用useImperativeHandle可能有效,但我不确定

非常感谢

1 个答案:

答案 0 :(得分:0)

这比我想象的要简单,只是将组件设置为属性,

function MyReactComponent(){
 useEffect(() => {
        MyReactComponent.exposedFunction = ()=>{
           //you can even set state here
        }
        // or expose in the window object
        window.MyReactComponent = MyReactComponent
    }, [])



}

然后打电话给

MyReactComponent.exposedFunction()

再次,此解决方案未遵循React的风格和原则,但是如果您需要将其集成到Eel或任何其他解决方案中,则可以使用