只有一些道具被载入状态

时间:2019-02-15 15:50:47

标签: reactjs

我正在尝试使用道具数据初始化一些输入。然后,这些数据将更改,因此需要将我的初始状态设置为props的值。我知道通常将其视为反模式,但是由于我仅播种此数据,因此这不应该成为问题。

最初,我调用我的组件并将其传递为道具。

 render(){
    return (

    this.state.BrakeVals.map((id, index)=> (

        <FormUpdateLine key={index}
        BrakeID={this.state.BrakeRef[index]}
        FuelID={this.state.FuelRef[index]}
        LocationID={this.state.LocationRef[index]}
        SpeedID={this.state.SpeedRef[index]}
        SteeringID={this.state.SteeringRef[index]}
        BrakeVal={this.state.BrakeVals[index]}
        FuelVal={this.state.FuelVals[index]}
        Latitude={this.state.LocationLats[index]}
        Longitude={this.state.LocationLongs[index]}
        SpeedVal={this.state.SpeedVals[index]}
        SteeringVal={this.state.SteeringVals[index]}
        />
        ))
);

然后在这个组件内部,我试图像这样设置初始状态。

import React from 'react';
import firebase from './Firestore.js';
class FormUpdateLine extends React.Component{
   constructor(props){
   super(props);
   this.state = {
       BrakeVal: this.props.BrakeVal,
       FuelVal: this.props.FrakeVal,
       Latitude: this.props.Latitude,
       Longitude: this.props.Longitude,
       SpeedVal: this.props.SpeedVal,
       SteeringVal: this.props.SteeringVal,
   };
 }

这是什么原因

Key"0"
Props
BrakeID:
"Jw9pn4pspnOsxigjkLNk"
FuelID:
"Wd3FMoGsf78F6UVDDoDa"
LocationID:
"DGOKkb105gGIKVs62WvI"
SpeedID:
"4ls9yGm2MZLB8pitQomV"
SteeringID:
"OlAF9e44IjmzbynlsaYm"
brakeVal:
"1"
fuelVal:
"1"
latitude:
"1"
longitude:
"1"
speedVal:
"1"
steeringVal:
"1"

State
BrakeVal:
"1"

我对这个问题最感兴趣的是,如果将BrakeID添加到我的状态,它也设法将其加载到状态中。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

直接加载到状态将显示不可预测的行为。 将所有内容加载到componentDidMount()的状态中,它将在第一个可见渲染周期中可用。