context api:consumer越级获取bug
shaoyudong opened this issue · comments
shaoyudong commented
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
司徒正美 commented