小编j.d*_*doe的帖子

如何防止我的功能组件通过React备忘录或React钩子重新呈现?

hiddenLogo改变值时,组件被重新呈现。我希望此组件永远不会重新渲染,即使其道具发生了变化。使用类组件,我可以这样实现sCU:

shouldComponentUpdate() {
  return false;
}
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法处理React挂钩/ React备忘录?

这是我的组件的外观:

import React, { useEffect } from 'react';
import PropTypes from 'prop-types';

import ConnectedSpringLogo from '../../containers/ConnectedSpringLogo';

import { Wrapper, InnerWrapper } from './styles';
import TitleBar from '../../components/TitleBar';

const propTypes = {
  showLogo: PropTypes.func.isRequired,
  hideLogo: PropTypes.func.isRequired,
  hiddenLogo: PropTypes.bool.isRequired
};

const Splash = ({ showLogo, hideLogo, hiddenLogo }) => {
  useEffect(() => {
    if (hiddenLogo) {
      console.log('Logo has been hidden');
    }
    else {
      showLogo();

      setTimeout(() => {
        hideLogo();
      }, 5000); …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs react-hooks

10
推荐指数
3
解决办法
4457
查看次数

在不在其中访问props的情况下,在React构造函数中将props传递给super()的原因是什么?

我见过许多代码片段,例如HelloWorld,props传递到哪里super().在构造函数中this.props 未访问时,这样做的原因什么?

class HelloWorld extends Component {
    constructor(props) {
        super(props);

        this.state = { message: 'Hi' };
        this.logMessage = this.logMessage.bind(this);
    }

    logMessage() {
        console.log(this.state.message);
    }

    render() {
        return (
            <input type="button" value="Log" onClick={this.logMessage} />
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs react-native

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

卸载组件好还是用 CSS 隐藏组件好?

在此输入图像描述 我的 React Native 应用程序中有一个标头组件,当用户键盘打开时,它会滑出屏幕。这样我就可以创造更多的空间。动画完成后,我可以卸载该组件(使用 Redux 及其父组件)或通过应用flex: 0.

哪种方法更好?还是没有区别?

javascript reactjs react-native

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

在React解包"this"是不好的做法吗?

我总是解开使得渲染功能看起来更整洁.这样做是不好的做法?

例:

class Zoom extends React.Component {
    // ...

    render() {
        const {view, zoomOutScreen} = this;
        const {navigation} = this.props;

        return (
            <Wrapper
                innerRef={view}
                animation='zoomIn'
                duration={200}
                useNativeDriver={true}
            >
                <Component
                    navigation={navigation}
                    zoomOutScreen={zoomOutScreen}
                />
            </Wrapper>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs react-native

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

如何在 Racket 中解析 JSON 文件?

我想在 Racket 中解析 JSON 文件,但我不知道如何处理这个问题,也找不到任何类似的例子。任何人都可以提供如何做到这一点的提示或示例吗?

parsing json functional-programming racket

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