RubyLouvre / anu

the React16-compat library with hooks

Home Page:https://rubylouvre.github.io/anu/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

context api:consumer越级获取bug

shaoyudong opened this issue · comments

React.createContext api的Provider会向外层Consumer传递context,代码如下

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>

  <!--<script type='text/javascript' src="./dist/React.js"></script>-->
  <script src="./dist/React.js"></script>
  <script type='text/javascript' src="./lib/babel.js"></script>
  <script type='text/babel'>
      window.onload = function(){
       var Context = React.createContext();
       //========  组件 =========
       const App = ({ children }) => (
        <div>
          <Context.Provider value='123'>
            <Context.Consumer>
              {(ctx) => (<div>consumer在provider内:{ctx}</div>)}
            </Context.Consumer>
          </Context.Provider>
          <Context.Consumer>
            {(ctx) => (<div>consumer在provider外:{ctx}</div>)}
          </Context.Consumer>
        </div>
      );

ReactDOM.render(<App />, document.getElementById("root"));

}
    </script>
  <div id='root'></div>
</body>

</html>

预期输出:
consumer在provider内:123
consumer在provider外:
实际输出:
consumer在provider内:123
consumer在provider外:123

image
改成这样就好了