React-native: рджреЗрдЦреЗрдВ: рд╕реНрдЯрд╛рдЗрд▓ рд╕реЗрдЯрд╕реНрдЯреЗрдЯ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЕрдЧре░ 2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react-native

рдЬрдм рдореИрдВ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓рдХрд░ рджреГрд╢реНрдп рд╢реИрд▓реА рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрдЧрд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХреНрдпреЛрдВ?

var React = require('react-native');

var { View, Text} = React;

var TouchIt = React.createClass({

  getInitialState() {
    return {
      style: style
    }
  },

  shouldSetResponder() {
    return true;
  },

  shouldSetMoveResponder() {
    return true;
  },

  responderGrant() {
    console.log('finger in');
  },

  responderMove() {
    var style = this.state.style;
    style.backgroundColor = this.getRandomColor();
    this.setState({backgroundColor: backgroundColor});
  },

  responderRelease() {
    console.log('finger out');
  },

  getRandomColor() {
    var randomColor = '#'+Math.random().toString(16).substr(-6);
    return randomColor;
  },

  render() {

    return (
        <View style={this.state.style}
          onStartShouldSetResponder={this.shouldSetResponder}
          onMoveShouldSetResponder={this.shouldSetMoveResponder}
          onResponderGrant={this.responderGrant}
          onResponderMove={this.responderMove}
          onResponderRelease={this.responderRelease}
          >
          <Text>{this.style.backgroundColor}</Text>
        </View>
    );
  }

});

var style = {
  backgroundColor: 'rgb(11, 135, 91)',
  flex: 1
}

module.exports = TouchIt;

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХрд░реНрддрд╛ рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ var style = {...this.state.style}; рддрд╛рдХрд┐ рдЖрдк рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛ рд╕рдХреЗрдВ рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рджреВрд╕рд░реЗ рд░реЗрдВрдбрд░ рдкрд╛рд╕ рдкрд░ рдирдпрд╛ рджреГрд╢реНрдп рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╢реИрд▓реА рд╣реИ .

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХрд░реНрддрд╛ рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ var style = {...this.state.style}; рддрд╛рдХрд┐ рдЖрдк рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛ рд╕рдХреЗрдВ рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рджреВрд╕рд░реЗ рд░реЗрдВрдбрд░ рдкрд╛рд╕ рдкрд░ рдирдпрд╛ рджреГрд╢реНрдп рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╢реИрд▓реА рд╣реИ .

100% рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ рд╣реИрдВ, рдПрдХ рдЖрдкрдХреА "var рд╢реИрд▓реА" рдореЗрдВ рдФрд░ рджреВрд╕рд░рд╛ "this.state" рдореЗрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдорд┐рд▓рд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ рдХреЛ рдпрд╣рд╛рдВ рдпрд╛ рд╡рд╣рд╛рдВ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдХреНрд░рдорд╢рдГ рдЕрдкрдиреЗ рдкреНрд░рддреНрдпреБрддреНрддрд░рдХрд░реНрддрд╛ рд╡рд┐рдзрд┐ рдореЗрдВ рд╕рд╣реА рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВред

рд╣реЗрдпрд░ рдпреВ рдЧреЛ!

var React = require('react-native');

var {
  AppRegistry,
  Image,
  ScrollView,
  StyleSheet,
  Text,
  View,
} = React;

var ExampleApp = React.createClass({

  getInitialState() {
    return {
      style: style
    }
  },

  shouldSetResponder() {
    return true;
  },

  shouldSetMoveResponder() {
    return true;
  },

  responderGrant() {
    console.log('finger in');
  },

  responderMove() {
    var backgroundColor = this.getRandomColor();
    this.setState({style: {backgroundColor}});
  },

  responderRelease() {
    console.log('finger out');
  },

  getRandomColor() {
    var randomColor = '#'+Math.random().toString(16).substr(-6);
    return randomColor;
  },

  render() {

    return (
        <View style={[{flex: 1}, this.state.style]}
          onStartShouldSetResponder={this.shouldSetResponder}
          onMoveShouldSetResponder={this.shouldSetMoveResponder}
          onResponderGrant={this.responderGrant}
          onResponderMove={this.responderMove}
          onResponderRelease={this.responderRelease}
          >
          <Text>{this.state.style.backgroundColor}</Text>
        </View>
    );
  }

});

var style = {
  backgroundColor: 'rgb(11, 135, 91)',
  flex: 1
}

рдЪрд░ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдореЗрд░рд╛ рдХреЛрдб рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдк рдХрд╣рд╛рдВ рдЧрд▓рдд рд╣реЛ рдЧрдП :) рд╡реИрд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рд╢реНрди рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реИ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

axelg12 picture axelg12  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arunabha picture arunabha  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

davidfloegel picture davidfloegel  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lazywei picture lazywei  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

madwed picture madwed  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ