首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将状态导入React JS中的另一个类/算法

将状态导入React JS中的另一个类/算法
EN

Stack Overflow用户
提问于 2018-12-20 00:18:03
回答 1查看 0关注 0票数 0

我有两个算法:

代码语言:javascript
复制
case types.EXPAND:
  let points = 0
  let phase = " "

  let formula = (state, eTime) => {
    return state.initialPoints * 2
  }
  if (state.Time < state.phaseOne) {
    count = formula(state, 0)
    this.setState({phase: "Expanding"})
  }

 return {
    ...state,
    data: mapCoordinates(coordinates)
    phase: phase
    And so on
  }

代码语言:javascript
复制
let generate = (data, newPoints) => {

if(this.props.phase === "Expanding"){ 
let var = Math.random();
  for (let i = 1; i < newPoints; i++) {

    let newX = data[i - 1].x  + Math.random() * var;
    let newY = data[i - 1].y  + Math.random() * var;
    data.push({ x: newX, y: newY }); 
    var += Math.random(0,1); 
  }
}

if(state.phase === "Remove"){
  while (data.length) {
  data.splice(data.length - 1, 1);
 }
} 

return data;
 }

问题:如何从第一个算法导入状态让生成好像(this.props.phase ===“扩展”){...}

新错误:无法读取未定义的属性'setState'

EN

回答 1

Stack Overflow用户

发布于 2018-12-20 10:01:33

听起来你需要提高你的特定应用程序的状态,以便你可以通过它将它传递给类props

例:

parentContainer.js

代码语言:javascript
复制
import React, { Component } from 'react';
import { ContainerFoo, ContainerBar } from childComponents.js;

class ParentContainer extends Component {
    constructor(){
        super()
        state = { 
            someValue: 1
         }
    }

     handleDoSomething = () => {
         let newState = Object.assign({}, this.state)
         newState.someValue++;
         this.setState(newState)
     }

    render() { 
        return ( 
            <ComponentFoo example={this.state.someValue} onDoSomething={this.handleDoSomething}/>
            <ComponentBar example={this.state.someValue} onDoSomething={this.handleDoSomething}/>
         );
    }
}

childrenComponents.js

代码语言:javascript
复制
import React, { Component } from 'react';

export class ComponentFoo extends Component {
    constructor(){
        super()
        console.log(this.props)
        // should output parent state passed in from props
    }
    render() { 
        return ( 
            <div>
                <button onClick={this.props.onDoSomething} > Click Me </button>
                Foo + {this.props.example}
            </div>
         );
    }
}

export class ComponentBar extends Component {
    constructor(){
        super()
        console.log(this.props)
        // should output parent state passed in from props
    }
    render() { 
        return ( 
            <div>
                <button onClick={this.props.onDoSomething} > Click Me </button>
                Bar + {this.props.example}
            </div>
         );
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档