相关疑难解决方法(0)

React 16.7 - React.SFC现已弃用

我用来声明像这样的无状态组件:

const example: React.SFC<IExample> = ({propsType}) => ();
Run Code Online (Sandbox Code Playgroud)

然而,证监会现已被弃用,也许Dan Abramov的这篇推文解释了原因.

现在SFC被弃用了我们应该使用什么?

deprecated typescript reactjs deprecation-warning

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

使用带功能组件的点表示法

官方 ReactJs 文档建议按照点符号创建组件,如React-bootstrap库:

<Card>
  <Card.Body>
    <Card.Title>Card Title</Card.Title>
    <Card.Text>
      Some quick example text to build on the card title and make up the bulk of
      the card's content.
    </Card.Text>
  </Card.Body>
</Card>
Run Code Online (Sandbox Code Playgroud)

借助类组件很容易创建此结构:

const CardBody = ({ children }) => <div className='body'>{children}</div>;

class Card extends Component {
  static Body = CardBody;

  render() {
    return (
      <div className='card'>{this.props.children}</div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

但也建议尽可能多地使用功能组件。不幸的是,我不知道如何仅使用功能组件来实现这一点。

如果我按照这种方式,我就不能再Card用作组件了,因为他现在是组件的对象:

const Card = {
  Component: CardComponent,
  Body: CardBody
}

export …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

15
推荐指数
3
解决办法
6166
查看次数

基于类的组件与功能组件有什么区别(Reactjs)

我是React的新手,我想清楚地知道要使用哪一个,当涉及到组件我会看到有两种类型.

功能组件:

import React from 'react'

const userInput = (props) => {
    return(
        <div>
            <input type='text' onChange={props.nameChanged} value={props.username}></input>
        </div>
    )
};

export default userInput;
Run Code Online (Sandbox Code Playgroud)

基于类的组件:

import React, { Component } from 'react';
import './App.css';
import UserOutput from './UserOutput/UserOutput';
import UserInput from './UserInput/UserInput';

class App extends Component {

  render() {
    return (
      <div className="App">
        <h3>Assignment Output :</h3>
        <ul>
          <li>
            <UserOutput 
            username={this.state.Usernames[0].username}>
            Welcome to React!
            </UserOutput>
            <UserInput 
            nameChanged={this.nameChangedHandler}>
            </UserInput>
          </li>
                      </ul>
      </div>
    );
  }
}

export default App;
Run Code Online (Sandbox Code Playgroud)

我开始读到我们应该总是尝试使用Functional组件, …

javascript reactjs

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

为什么使用无状态功能组件而不是基于类的组件?

我正在学习 ReactJS,并且了解到有 UI 组件和容器组件。容器组件是使用classes扩展React.Component和包含state以及很好的旧render方法实现的,而 UI 组件是使用创建的functions,它们只关心 UI,因为它们只从props.

示例无状态功能组件:

const Ninjas = (props) => {
    const { ninjas } = props;

    const ninjalist = ninjas.map((x) => {
        var divStyle = {
            color: getRandomColor(),
        };

        return (
            <div className="ninja" key={x.key} style={divStyle}>
                <p>Name: {x.name}</p>
                <p>Age: {x.age}</p>
                <p>Belt: {x.belt}</p>
            </div>
        );
    });
    return <div className="ninja-list">{ninjalist}</div>;
};

export default Ninjas;
Run Code Online (Sandbox Code Playgroud)

与容器组件相同的示例

export default class Ninjas extends Component {
    getRandomColor = () => { …
Run Code Online (Sandbox Code Playgroud)

javascript components reactjs

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

React - 偏好:函数组件与类组件

是否放弃了类组件?

我看到在几个库示例中,函数组件是优先考虑的。

尤其是 React 导航。

同样,带有 Hook 的 React 本身仅使它们可用于函数组件。

主要问题是:为什么功能组件如此重要?

reactjs react-native react-navigation

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

在react-Native中创建UI时Class和Const有什么区别?

const App = () => (
  <View>
    <Text>Test</Text>
  </View>
  )

class App extends Component {
  render() {
    return (
      <View>
        <Text>Test</Text>
      </View>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

当我测试时,有两件事是相同的。请告诉我这两者之间的区别。

reactjs react-native react-redux

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

React Hooks:Hooks 时代的无状态组件 VS 类组件——哪个更好,更推荐?

在通过网络和 SO(这里)阅读了大量文档后,大多数人建议尽可能使用无状态函数(功能组件)。

甚至 Class 组件的大多数生命周期方法都被useState和 和之类的钩子取代了useEffect

我已经使用钩子和它们的类等价物创建了一些项目,我看到了代码行和功能数量的差异。

那么,哪一个比另一个更好?类组件的功能组件 ?

javascript ecmascript-6 reactjs react-hooks

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