我有两个算法:
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
}
和
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'
发布于 2018-12-20 10:01:33
听起来你需要提高你的特定应用程序的状态,以便你可以通过它将它传递给类props
。
例:
parentContainer.js
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
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>
);
}
}
https://stackoverflow.com/questions/-100006334
复制相似问题