- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正在学习reactjs的生命周期方法。为了更深入地理解,我尝试通过创建 self 示例来学习。我所做的是,我创建了一个名为颜色的对象,并将它们传递给 ColorButtons 组件。获取颜色对象以根据 Prop 中的颜色显示按钮。我可以显示该按钮,但是当我单击 #fd5c63 颜色按钮时,应该会发生一些事件。如果我一次又一次单击同一个按钮,则不应重新呈现页面。如果我是对的,我必须使用 componentWillRecieveProps 和 ShouldComponentUpdate。这就是为什么我想深入了解它们。如果我对重新渲染部分的理解是正确的,为什么我的 componentWillRecieveProps 没有在控制台中显示任何内容?谁能帮助我理解我正在谈论的场景?
这是我的代码
const colors = [
{id:1, color: '#00a98f'},
{id:2, color: '#fd5c63'},
{id:3, color: '#49176d'}
];
render(<ColorButtons colors = {colors} />, document.querySelector('#app'))
class ColorButtons extends React.PureComponent {
constructor(props) {
super(props);
}
componentWillReceiveProps(nextProps) {
console.log(`nextProps ${nextProps}`);
}
render() {
const colorBtn = () => this.props.colors.map((color, i) =>
<ColorButton
color={color.color}
key={color.id}
onClick={()=>console.log(color.color)}
/>
);
return (
<Wrapper>
<Title>Hello World, this is my first styled component!</Title>
{colorBtn()}
</Wrapper>
)
}
}
export default ColorButtons;
这是工作示例
最佳答案
非常简单 - 你不需要改变 props。
这是一个小测试,单击时将触发 console.log 行:
class ButtonSwitcher extends React.Component {
constructor() {
super()
this.state = {
colors: [
{id:1, color: '#00a98f'},
{id:2, color: '#fd5c63'},
{id:3, color: '#49176d'}
]
}
}
render() {
const colors = this.state.colors
const onClick = ()=> {
const [a, b, c] = this.state.colors
this.setState({colors: [b, c, a]})
}
return (
<div onClick={onClick}>
<ColorButtons colors = {colors} />
</div>
)
}
}
render(<ButtonSwitcher/>, document.querySelector('#app'))
关于javascript - nextProps 未显示在我的 componentWillRecieveProps 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43647961/
我是 redux 新手,关注 this tutorial使用 React 和 Redux 创建一个简单的博客应用程序。我已经完成了它,但是我注意到 componentWillRecieveProps
我正在尝试在我的 react-native 应用程序中重新呈现一些值。为此,我使用了 componentWillRecieveProps()。但是,componentWillRecieveProps(
我正在编写表单的一个组件 首次安装组件时,sources={{}} ,一本空字典。由于该组件包装了现有的 Javascript 库,因此我正在实现一个自定义比较函数。为了让这个 diffing 函数
以下子组件从其父组件接收 Prop 。然后,它使用 getInitialState 将 props 设置为它自己的状态,并使用 this.state 将值呈现给相应的输入字段。 我正在使用 compo
我听说过 getDerivedStateFromProps,但它并没有按照我想要的方式工作。 我有这个代码: class App extends Component { static getD
我需要通过 searchbar 组件将搜索值传递给 menubar 组件以执行自定义搜索 所以我从代码沙箱中取出一个现有的功能组件并将其转换为类组件。 但我收到一个错误 App(...): 没有从渲染
正在学习reactjs的生命周期方法。为了更深入地理解,我尝试通过创建 self 示例来学习。我所做的是,我创建了一个名为颜色的对象,并将它们传递给 ColorButtons 组件。获取颜色对象以根据
我正在阅读 React facebook 的文档和 there据记载 Invoked when a component is receiving new props. This method is n
问题:更改 的参数component 不会更新它正在渲染的组件。路由变化显示在地址栏,但是直接渲染{this.props.match.params.id}显示旧:id而不是 URL 栏中反射(ref
redux-forms 版本:6.6.3 react 版本:15.5.0 我想从我的 React 组件中的 componentWillRecieveProps 函数调用不同的提交函数。 compone
我有一个引导模式组件,其中包含一个博客表单,我们可以在其中创建新博客或编辑现有博客。当我选择要编辑的博客时,我们在模态组件中调用 ajax,然后自动填充表单数据。 我的父组件如下所示。 class D
在我的按钮组件的 app.js 中,我给了这个 Prop propTwo={"two"} 但 Button.js 仍然没有在 componentWillReceiveProps 中打印任何内容 你能告
我是一名优秀的程序员,十分优秀!