Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

assignment for jsx in double circulation #11476

Closed
tageecc opened this issue Nov 7, 2017 · 1 comment
Closed

assignment for jsx in double circulation #11476

tageecc opened this issue Nov 7, 2017 · 1 comment

Comments

@tageecc
Copy link

tageecc commented Nov 7, 2017

Do you want to request a feature or report a bug?
bug,maybe~

What is the current behavior?

  • the code is :
import React, { Component } from 'react';

class App extends Component {

    render() {

        let res = new Array(2).fill(new Array(2));
        for(let i =0;i<2;i++){
            for(let j=0;j<2;j++){
                console.log(res[i][j]);
                res[i][j]=<div>{'i:'+i+',j:'+j}</div>;
            }
        }
        return res;
    }
}

export default App;
  • and the result print on the page is:

image

What is the expected behavior?
it's very strange, i should not start with 0?

Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?

"dependencies": {
    "react": "^16.0.0",
    "react-dom": "^16.0.0",
    "react-scripts": "1.0.17"
  }
@gaearon
Copy link
Collaborator

gaearon commented Nov 7, 2017

This fills the top-level array with two references to the same Array object:

let res = new Array(2).fill(new Array(2));

So in the second iteration of the loop, you override the values set during the first iteration.

@gaearon gaearon closed this as completed Nov 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants