相关疑难解决方法(0)

在保留对象的同时解析函数调用中的赋值

有没有办法做以下的事情?

f = (o:{a:x}) {
    console.log(o);
    console.log(x);
}
f({a:0});
//Should Print:
//{a:0}
//0
Run Code Online (Sandbox Code Playgroud)

获得与此相同的结果.

f = function(o) {
    var {a:x} = o;
    console.log(o);
    console.log(x);
}
f({a:0});
//Prints
//{a:0}
//0
Run Code Online (Sandbox Code Playgroud)

我想解析函数参数中的对象,同时将对象传递给函数,以便可以修改对象.

javascript destructuring node.js ecmascript-6

11
推荐指数
2
解决办法
3150
查看次数

方法参数:解构+保存原始参数(ReactJS组件)

有没有办法实现方法参数解构,但也能得到方法参数.

在具有无状态组件的React应用程序的上下文中,我希望能够替换

const MyComponent = (props) => {
  const {prop1, prop2} = props;
  return (
    <div className={prop1 + '-' + prop2}>
      <Child {...props}/>
    </div>
  ) 
}
Run Code Online (Sandbox Code Playgroud)

用更简洁的语法

const MyComponent = (props: {prop1, prop2}) (
  <div className={prop1 + '-' + prop2}>
    <Child {...props}/>
  </div>
) 
Run Code Online (Sandbox Code Playgroud)

有没有这样的语法?

javascript destructuring ecmascript-6 reactjs

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

破坏参数并保持对它的引用

在ES6中是否有办法破坏参数并通过名称引用它?

myfunction(myparam) {
    const {myprop} = myparam;
    ...
}
Run Code Online (Sandbox Code Playgroud)

这可以在函数参数列表中的一行中完成吗?类似于Haskell的@模式匹配.

javascript ecmascript-6

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

解构嵌套对象:如何获取父级及其子级值?

在下面的函数中,我得到了带有属性的textarea对象current.

这里,嵌套的解构与StartEnd变量一起工作.但current变量不起作用.

function someFunction({ current: { selectionStart: Start, selectionEnd: End } }, AppStateSetter) {

    // do something with current, Start, and End
}
Run Code Online (Sandbox Code Playgroud)

javascript destructuring reactjs react-ref

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

Destructure对象参数,还要引用参数作为对象吗?

使用ES6,您可以在函数参数中构造对象:

({name, value}) => { console.log(name, value) }
Run Code Online (Sandbox Code Playgroud)

等效的ES5将是:

function(params) { console.log(params.name, params.value) }
Run Code Online (Sandbox Code Playgroud)

但是,如果我想什么了一个既参考params对象和嵌套的属性valuename?这是我得到的最接近的,但缺点是它不能用于箭头函数,因为它们无法访问该arguments对象:

function({name, value}) {
  const params = arguments[0]
  console.log(params, name, value)
}
Run Code Online (Sandbox Code Playgroud)

javascript destructuring ecmascript-6 object-destructuring

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

获取在参数中被解构的对象

假设我有一个函数将一个destructured对象作为箭头函数中的参数:

const myFunc = ({a, b, c}) => {
};
Run Code Online (Sandbox Code Playgroud)

无论如何还是语法允许我将整个对象作为单个值获得?由于箭头函数没有绑定arguments,我不能使用它.

是否有可能命名它,类似于:

const myFunc = (allArgs: {a, b, c}) => {
    console.log(allArgs);
};
myFunc({a:1, b:2, c:3}); // Output: {a:0, b:1, c: 2}
Run Code Online (Sandbox Code Playgroud)

显然,这不是一个交易破坏者,并且有很多变通办法(要么不使用箭头功能,不要破坏,或者在需要时重新创建对象),但为了方便起见,我想知道.

javascript ecmascript-6

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

有没有办法分解功能参数并保留对该参数的命名引用?

在反应无状态功能组件时,我们通常会这样写:

export function MyCompoment({
    title, 
    foo, 
    bar
}) {
    return <div> title: {title}, ...</div>
}
Run Code Online (Sandbox Code Playgroud)

我们立即将props对象分解为它的变量。

现在,我正在使用Material-UI makeStyles挂钩,并且还在使用TypeScript,而我当前使用它的方式如下所示。

const useStyles = makeStyles((theme : Theme ) =>({
     root: ({foo} : MyComponentProps) => ({
         content: foo
     })
}); 

interface MyComponentProps  {
    title: string; 
    foo: string; 
    bar: string; 
}
export function MyCompoment({
    title, 
    foo, 
    bar
} : MyComponentProps) {
    const classes = useStyles({
        title,
        foo, 
        bar
    }); 
    return <div> title: {title}, ...</div>
}
Run Code Online (Sandbox Code Playgroud)

您会看到问题-我必须重复props变量名称才能传递到类中。

我认为可以避免这种情况的最好方法就是这样写:

export function MyCompoment(props: MyComponentProps) {
    const { …
Run Code Online (Sandbox Code Playgroud)

javascript destructuring typescript reactjs

5
推荐指数
2
解决办法
163
查看次数

在JavaScript解构中捕获嵌套级别

JavaScript解构是否具有捕获对象及其内容的语法?

换句话说,如果没有以下const行,我可以在函数的arg列表中完全执行以下操作吗?

f = (a) => {
  const {b} = a;
  console.log("I see:", a, "and", b);
}

f({b:42})

==> I see {b: 42} and 42
Run Code Online (Sandbox Code Playgroud)

(FWIW:我在想:asClojure或ClojureScript中的东西).

javascript destructuring

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