草庐IT

SetState

全部标签

javascript - React 中的 setState 基于当前状态

在React中更新有状态组件时,当组件使用当前状态更新新状态时,这被认为是一种不好的做法。例如,如果我有一个类在其状态下存储过滤器是否打开,那么就性能而言,这些用于更新状态的选项中的一个是否比另一个更可取?选项1:classContainerextendsComponent{state={show:false}show=()=>this.setState({show:true})hide=()=>this.setState({show:false})render(){}}选项2:classContainerextendsComponent{state={show:false}toggl

javascript - 了解 ReactJS 受控表单组件

我正在根据以下页面实现以下代码:https://facebook.github.io/react/docs/forms.htmlclassReservationextendsReact.Component{constructor(props){super(props);this.state={isGoing:true,numberOfGuests:2};this.handleInputChange=this.handleInputChange.bind(this);this.handleSubmit=this.handleSubmit.bind(this);}handleInputCh

javascript - Reactjs - 在子组件中使用 setState 从 Prop 设置状态

我有以下基于排序下拉列表呈现用户的类。如果我选择“字母顺序”,用户将按字母顺序列出,当我选择“组”时,将按组顺序列出。render(){return(const{members,sort}=this.state{sort==="alphabetical"&&}{sort==="group"&&}))在组件我在componentWillReceiveProps()中设置来自props.members的组件状态对象功能。componentWillReceiveProps=props=>{this.setState({members:props.members});}当我选择“组”排序时,组

javascript - 不要直接改变状态。使用 setState() react/no-direct-mutation-state

我有这个代码:constructor(props){super(props)this.state={loginButton:'',benchmarkList:''}if(props.username==null){this.state.loginButton=}else{}}它给我一个ESLint警告:Donotmutatestatedirectly.UsesetState()react/no-direct-mutation-state.现在我该怎么办,因为我不能在constructor中直接使用setState,因为它会创建error像这样更新会给我错误。

javascript - 为什么 componentWillUpdate() 和 componentWillMount() 在这些方法中使用 setState 时不会触发渲染功能?

我们可以在每个组件生命周期方法中调用setState()。为什么我们不在componentWillUpdate()和componentWillMount()中调用它?为什么这些方法在将setState放入其中时不触发渲染函数?谁能详细解释一下?谢谢。 最佳答案 componentWillMount()中的setState()componentWillMount()isinvokedimmediatelybeforemountingoccurs.Itiscalledbeforerender(),thereforesettingstat

javascript - 在 reactjs 中发生状态更改后调用函数

我的问题是这样的。我有两个组成部分。第一个组件是图像裁剪器。第二个组件是我应该显示裁剪图像的组件。我面临的问题是我可以将裁剪后的图像传递到我的第二个组件,但我必须按下裁剪图像的按钮并传递到第二个组件,两次。在第二次单击时,只有我的图像传递到第二个组件。但是我只需单击一下就可以在第一个组件中显示裁剪后的图像。我认为它正在发生,因为在reactjs状态变化不会立即发生。那么我该如何解决这个问题。我的方法是在第一个组件中创建一个prop函数作为this.props.croppedImage(this.state.preview.img);这里this.state.preview.img是裁剪

javascript - react : componentDidMount + setState not re-rendering the component

我对使用componentDidMount和setState来使用react并努力更新自定义组件相当陌生,这似乎是推荐的做法。下面是一个示例(包括用于获取数据的axiosAPI调用):importReactfrom'react';import{MyComponent}from'my_component';importaxiosfrom'axios';exportdefaultclassExampleextendsReact.Component{constructor(props){super(props);this.state={data:[]};}GetData(){returnax

javascript - 在渲染容器之前 react redux 调度操作

我是React-redux应用程序开发的新手,我想了解如何在页面加载后立即分派(dispatch)另一个操作。以下是我的容器代码。我正在使用这个(https://github.com/jpsierens/webpack-react-redux)样板文件。letlocationSearch;constActivationPage=({activateUser})=>{return(ActivationRequiredAnActivationEmailwassenttoyouremailaddress.Pleasecheckyourinboxtofindtheactivationlink{

javascript - 在 React setState 函数中使用 e.target.value 的问题

我在React中遇到了一个奇怪的问题。我想我可能还没有完全掌握React的工作原理,非常感谢您的帮助。请在下面找到我的React组件:classmyComponentextendsComponent{state={value:''}updateValue=e=>{this.setState({value:e.target.value})}render(){return()}}然后,现在如果我在文本字段中键入内容,我将收到以下警告和错误:警告:出于性能原因重用此合成事件。如果您看到这一点,则表示您正在访问已发布/已取消的合成事件的属性target。这被设置为空。如果您必须保留原始合成事件

javascript - React setState 中的竞争条件

问题:一个组件的多个子组件几乎同时触发了事件。这些事件中的每一个都由handleChange风格的函数处理,这些函数使用React的不变性助手将复杂对象合并到控制组件的状态中,通过类似于;this.setState(React.addons.update(this.state,{$merge:new_value_object}));这在事件独立触发时工作正常,但当多个事件以这种方式导致状态更新时,每个事件都单独从状态的旧版本合并。IE。(伪代码,不打算执行)。functionlogState(){console.log(this.state)}logState();//{foo:'',