小编kin*_*ser的帖子

从Angular 2中的子组件更新父组件属性

我正在使用@input从父组件接收属性,以便在子组件的元素之一中激活CSS类.

我可以从父母那里收到房产并激活班级.但这只能工作一次.我从父级接收的属性是一个类型的布尔数据,当我将它的状态设置为false来自子组件时,它在父级中不会改变.

Plunkr:https://plnkr.co/edit/58xuZ1uzvToPhPtOING2 ? p = preview

app.ts

import {Component, NgModule} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
import { HeaderComponent } from './header';
import { SearchComponent } from './header/search';

@Component({
  selector: 'my-app',
  template: `
    <app-header></app-header>
  `,
})
export class App {
  name:string;
  constructor() {
  }
}

@NgModule({
  imports: [ BrowserModule ],
  declarations: [ App, HeaderComponent, SearchComponent ],
  bootstrap: [ App ]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

header.ts

import { Component, OnInit } from '@angular/core'; …
Run Code Online (Sandbox Code Playgroud)

typescript angular2-inputs angular

60
推荐指数
2
解决办法
6万
查看次数

首次单击后,Angular2删除单击事件绑定

在我的应用程序中,我有一个按钮,甚至可以点击它:

<button class="btn btn-default" (click)="doSomething()">
Run Code Online (Sandbox Code Playgroud)

doSomething方法中,有没有办法(click)从按钮中删除事件(因此用户不能再触发功能?).

我试图在按钮上设置一个禁用的道具,但它不会改变Angular2的行为.

我试着用(click)="doSomething($event),然后

doSomething($event) {
  // My method logic goes here
  ...
  ...
  console.log('Method Logic');

  //Attempt to overwrite click event
  let target = event.target || event.srcElement || event.currentTarget;
  this.renderer.listen(target, 'click', (event) => {
      console.log('clic block');
    });
}
Run Code Online (Sandbox Code Playgroud)

但它不会"替换"click事件.因此,在此之后,单击时,将触发原始逻辑和"单击块"控制台日志!

javascript typescript angular

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

获取JavaScript对象键列表卷.2

这是原始问题:获取JavaScript对象键列表

但如果情况稍微复杂一点,如:

var obj = [
   { key1: 'value1' },
   { key2: 'value2' },
   { key3: 'value3' },
   { key4: 'value4' }
]
Run Code Online (Sandbox Code Playgroud)

那你怎么得到这样的钥匙?

[key1,key2,key3,key4]
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

6
推荐指数
3
解决办法
635
查看次数

如何在 React 中将 prop 传递给 {children}?

我有一个 Parent 组件,它充当其子组件的包装器。如何将道具传递给将使用以下格式呈现的孩子?

import React, { useEffect, useState } from 'react';

const Parent = ({ children }) => {
  const [completeState, setCompleteState] = useState(false);

  useEffect(
    () => {
      /* .. code that runs then sets completeState to true */
    setCompleteState(true);
     }, []
  );

  return (
     <section>
       /* 
          how to pass a 'didComplete' prop to children?
           didComplete={completeState}
       */
       {children} // Child component below would be rendered here with the didComplete prop passed in
    </section>

  )
}
Run Code Online (Sandbox Code Playgroud)
import React from 'react';

const …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

Javascript:如何从重复的数组值中仅删除一个值

我有一个重复三次的数组['2530491','2530491','2530491','2530492']2530491我想从其中的 3 个数组中删除单个值 2530491,因此输出将类似于 : ['2530491','2530491','2530492']

fileArrayAnnounce_size = jQuery.grep(fileArrayAnnounce_size, function(value){
  return value != file_size.metas[0].size;
});
Run Code Online (Sandbox Code Playgroud)

我尝试抓握,但它消除了所有相同的价值。我只想从重复项中删除单个值。

javascript arrays jquery

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

ReactJS中的内联样式

我是ReactJS的新手.当我点击它时,我试图同时更改文本和按钮的颜色.此代码有效:

class ToggleHelp extends React.Component {
  constructor(props) {
    super(props);
    this.state = {isHelpOn: true};

    // This binding is necessary to make `this` work in the callback
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    this.setState(prevState => ({
      isHelpOn: !prevState.isHelpOn
    }));
  }

  render() {
    return (
      <button onClick={this.handleClick}>
        {this.state.isHelpOn ? 'HELP ON' : 'HELP OFF'}
      </button>
    );
  }
}

ReactDOM.render(
  <ToggleHelp />,
  document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用如下所示的内联样式时,代码停止工作.

<button style={background:yellow} onClick={this.handleClick}>
  {this.state.isHelpOn ? 'HELP ON' : 'HELP OFF'}
</button>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几次,以各种方式做到这一点.我希望它能成为当下的内联风格.是否可以直接从React应用内联样式?如果是,那么想法是评估状态并通过条件语句在另一种颜色上设置一种颜色.

javascript css reactjs

4
推荐指数
2
解决办法
4453
查看次数

React —语法错误:意外令牌,预期;

由于某种原因,我无法弄清楚,我在以下React组件中收到语法错误。该错误是在第一个curly bracketrenderItem()。怎么了?

先感谢您。

import _ from 'lodash';
import React from 'react';
import { ToDoListHeader } from './todo-list-header';
import { ToDoListItem } from './todo-list-item';

export const ToDoList = (props) => {
  renderItems() {
    return _.map(this.props.todos, (todo, index) => <ToDoListItem key={index} {...todo} />)
  }

  return (
    <div>
      <table>
        <ToDoListHeader />
        <tbody>
          {/* {this.renderItems()} */}
        </tbody>
      </table>
    </div>
  );
}
Run Code Online (Sandbox Code Playgroud)

javascript components syntax-error reactjs

3
推荐指数
1
解决办法
2万
查看次数

尝试通过reactjs中的document.getgetElementsByTagName进行映射

当我运行时,我试图映射结果对象document.getElementsByTagName。我意识到我无法映射对象,只能映射数组,但我不知道如何将其转换为对象以使其可迭代。

我的代码如下所示:

const [h2, setH2] = useState([]);

const getH2 = () => {
setH2(document.getElementsByTagName("h2"));
console.log(h2)
  }
Run Code Online (Sandbox Code Playgroud)

这给了我以下结果: 控制台日志

尝试通过 h2 进行映射会返回错误:

TypeError: h2.map is not a function
Run Code Online (Sandbox Code Playgroud)

我也尝试过h2.HTMLCollection.map(),但它引发了同样的错误。

如何映射 的结果docuemnt.getElementsByTagName?我尝试将对象转换为数组,但到目前为止未成功。

javascript arrays object getelementbyid reactjs

3
推荐指数
1
解决办法
1416
查看次数

从事件中获取文件时,typescript 对象可能为空

我正在尝试制作打字稿 + 反应文件输入组件。但是,我收到打字稿错误“对象可能为空”。我用谷歌搜索但找不到这个问题的解决方案。如何在不禁用打字稿空检查的情况下解决此问题。

我在 e.target.files[0] 上遇到错误!

这是下面的代码

import React from 'react';


    export default function ImageUpload() {
      const [selectedFile, setSelectedFile] = React.useState<File | string>('fileurl');
      const [imagePreviewUrl, setImagePreviewUrl] = React.useState<string | undefined | ArrayBuffer | null>();

      const fileChangedHandler = (e : React.ChangeEvent<HTMLInputElement>) => {
        setSelectedFile(e.target.files[0]!);

        const reader = new FileReader();

        reader.onloadend = () => {
          setImagePreviewUrl(reader.result);
        };

        reader.readAsDataURL(e.target.files[0]!);
      };

      const submit = () => {
        const fd = new FormData();

        fd.append('file', selectedFile);
      };

      let imagePreview = (<div className="previewText image-container">Please select an Image …
Run Code Online (Sandbox Code Playgroud)

javascript components typescript reactjs

2
推荐指数
3
解决办法
4194
查看次数

React 无需导入即可工作

我对 import React 语句感到困惑。我知道如果我们需要使用 JSX,我们需要从 react 包中导入 React。

import { Count } from "./components/Count";

// import React, { useState } from "react";
function App() {
  const visiable = true;
  return (
    <div>
      <Count visiable={visiable} />
      {/* <button
        onClick={() => {
 
        }}
      >
        Switch
      </button> */}
    </div>
  );
}

export default App;

Run Code Online (Sandbox Code Playgroud)

在上面的代码示例中,返回的数据不是JSX吗?我在 return 语句中有 div、button 和 Counter 组件。如果我理解正确,这些是 JSX。

但是我没有在文件中导入 React。但它仍然编译成功。可能有人帮助我理解这一点。谢谢

javascript jsx reactjs babeljs

2
推荐指数
1
解决办法
309
查看次数