Andrey (azangru) wrote,

ES6 and Object Destructuring

Пример из реакт-роутера:

const User = ({ params: { userID }, location: { query } }) => {
  let age = query && query.showAge ? '33' : ''

  return (

    <div classname="User">
       <h1>User id: {userID}</h1>

Сходный пример из

function whois({displayName: displayName, fullName: {firstName: name}}){
  console.log(displayName + " is " + name);

var user = { 
  id: 42, 
  displayName: "jdoe",
  fullName: { 
      firstName: "John",
      lastName: "Doe"

whois(user); // "jdoe is John"

Я, наверное, полчаса на это таращился, вникая, что происходит. А происходят вложенные объекты. В примере из реакт-роутера функции говорят: вот, ты получишь аргумент (он обычно называется props) — и это будет объект, у которого есть свойство params. Вытащи свойство params — получишь объект, у которого есть свойство userID. Так вот, возьми значение свойства userID и присвой его переменной userID.

Ну и тыпы. В зайце утка, в утке яйцо, в яйце игла...

Такая штука, с непривычки изрядно вштыривает.

  • (no subject)

    Another interesting example of a gap in sense-making. "How do you test that this is the delta variant," asks a journalist the deputy White House…

  • (no subject)

    Two clips left a particularly deep impression on me over the last couple of days. One is Pelosi's reply to a journalist: Not the first of her…

  • (no subject)

    Is the CNN making the point for Bret Weinstein (transmitting the message of Geert Vanden Bossche)? So strange to see.

  • Post a new comment


    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment