小编zor*_*404的帖子

React 中高阶组件的用例?

component composition官方 react.js 上的教程描述了如何使用组合来避免继承,并且在大多数情况下我看到了这里的优势。
但是网站也提到了we haven’t found any use cases where we would recommend creating component inheritance hierarchies
src:https : //reactjs.org/docs/composition-vs-inheritance.html

但是我们有一个关于 HOC(高阶组件)模式
src的教程:https : //reactjs.org/docs/higher-order-components.html
它建议编写用于生成复合组件的函数,以避免重复逻辑。
此模式也用于 Relay 中,用于与 GraphQL 配合使用的组件。

对于来自 C#/Java/PHP 背景的人来说,他们的 HOC 用例看起来像是何时使用继承的明显例子。这是我之前在 React 中自己做的,发现它非常直观,更重要的是易于调试。

我也在努力理解 HOC 中使用的生成器函数相对于常规复合组件的优势,后者通过 props 获取内部组件。

所以我的问题是:React 中的 HOC 是否存在无法通过组合或继承轻松解决的用例?

示例将不胜感激。

更新:发现这篇文章Inheritance Inversion建议让您的包装类从您的内部类继承并调用它的 render() 方法。
我可能有偏见,所以我不会立即放弃这个想法,因为它可能有实际用途,但我必须首先对其进行更多研究。
如果您知道这何时可以击败常规组合或继承,请发表评论,或者如果您认为自己有一个很好的案例,请留下一个答案。

reactjs higher-order-components

7
推荐指数
1
解决办法
2499
查看次数

如果在 ReactJS 中关闭或刷新页面,则显示警告

我的问题是我需要用户确认是否要继续关闭或刷新页面。如果他按下No,它不会关闭也不会刷新页面。

请看一下我到目前为止的代码:

useEffect(() => {
    window.addEventListener("beforeunload", alertUser);
    return () => {
      window.removeEventListener("beforeunload", alertUser);
    };
  }, []);
Run Code Online (Sandbox Code Playgroud)

ecmascript-6 reactjs react-hooks

7
推荐指数
1
解决办法
1万
查看次数

php,我在使用$ this->时在课堂上出错

我使用时在代码中出现此错误 $this->

致命错误:无法访问第21行/home/u506382626/public_html/s1/arrays.php中的空属性

我虽然这是你如何访问当前的对象变量,不是吗?

这是我的代码.我正在尝试为每个索引创建一个具有更大值的数组但是使用函数at而不是索引.是否有可能在php中重载operator [],你是如何做到的?

希望有人知道这是什么问题.

<?php

class zArray {
    public $change = 1.165;

    public $lenght;
    private $vars = array();
    public $name;
    public $percent = false;

    public function __construct($values) {
        for ($i=0; $i < 5; $i++) { 
            $vars[$i] = $values[$i];
        }
        $lenght = $values[5];
        $name = $values[6];
        $percent = $values[7];
    }

    public function at($i) {
        $newchange = $this->$change;
        for ( $i-- ; $i; $i-- )
            $newChange *= $this->$change;

        $newVars = $this->$vars;
        for ($i = 0; $i < 4; $i++) …
Run Code Online (Sandbox Code Playgroud)

php

1
推荐指数
1
解决办法
64
查看次数