Как передать состояние из родительского представления дочернему? - PullRequest
0 голосов
/ 13 июля 2020

MyPinchZoomView имеет состояние «масштаб». В приведенной ниже настройке, как компонент «доска» может отслеживать текущий масштаб?

 render() {
      return (
        <MyPinchZoomView
          minScale={0.9}
          maxScale={2}
          >
          { this.board }
        </MyPinchZoomView>
      )
  }

Тот же вопрос, если бы я добавил MyPinchZoomView в компонент платы:

 return (
      <View>
      <MyPinchZoomView
          minScale={0.9}
          maxScale={2}
          >
          { this.fields }
          { this.rackFields }
          { this.figures }
    
      </MyPinchZoomView>


      <Toolbar board={this} figures={this.figures}></Toolbar>
      <Text>{this.state.lastRefresh}</Text>
      <Moves game={this.props.game} lastRefresh={this.state.lastRefresh}/>
      <FlashMessage position="top" ref="errorMessage" />
      </View>
    )
  }

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Скорее передача полных состояний (не рекомендуется)

Передача значений в виде реквизитов, таких как

<ParentComponent>
      <ChildComponent dataOne={this.state.stateOfDataOne}/>
</ParentComponent>

, затем в вашем дочернем компоненте

<ChildComponent>
        <Text>{this.props.dataOne}</Text>
</ChildComponent>
0 голосов
/ 13 июля 2020

Вы можете передать scale в качестве параметра функции, например, this.board(scale), или вместо этого использовать компонент как дочерний напрямую:

<Board
  scale={scale}
/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...