当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) 我见过许多代码片段,例如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) 我总是解开这使得渲染功能看起来更整洁.这样做是不好的做法?
例:
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) 我想在 Racket 中解析 JSON 文件,但我不知道如何处理这个问题,也找不到任何类似的例子。任何人都可以提供如何做到这一点的提示或示例吗?
javascript ×4
reactjs ×4
ecmascript-6 ×3
react-native ×3
json ×1
parsing ×1
racket ×1
react-hooks ×1