this.props._sharedData.auth_user == 1 ?
<IconMenu
iconButtonElement={
<IconButton style={{height: '64px'}}>
<MoreVertIcon color={white}/>
</IconButton>}
anchorOrigin={{horizontal: 'right', vertical: 'top'}}
targetOrigin={{horizontal: 'right', vertical: 'top'}}>
{ Object.keys(this.props._sharedData.loc.account).map(
(item, i) => (
<MenuItem primaryText={this.props._sharedData.loc.account[item]}/>
))}
</IconMenu>
:null
firebase.database().ref('/catalog/' + Need ID ).once('value').then(function(snapshot) {
var data = snapshot.val()
console.log("data",data)
// ...
});
const authenticateWithEmailAndPassword = (email, password) => {
// console.log('authenticateWithEmailAndPassword',email, password)
return dispatch => {
dispatch({type: types.START_LOGIN});
firebaseAuth.signInWithEmailAndPassword(email, password)
.then(result => {
//Здесь вы ложите email и пасс пользователя в users/people/id данного пользователя
dispatch(signInEmailPasswordSuccess(result))
})
.catch(error => {
dispatch(signInError(error))
});
}
}
import React, { Component } from 'react';
class Slider extends Component {
constructor(props){
super()
this.state=({
currentSlideImage : 0
})
}
handlePrevButton(){
let currentSlideImage = this.state.currentSlideImage;
this.setState({
currentSlideImage:currentSlideImage-1
})
}
handleNextButton(){
let currentSlideImage = this.state.currentSlideImage;
this.setState({
currentSlideImage:currentSlideImage+1
})
}
render() {
return (
<div className="container">
<button onClick={()=>this.handlePrevButton()}>Prev</button>
<img src={this.props.slides[this.state.currentSlideImage]} alt="slider-item"/>
<button onClick={()=>this.handleNextButton()}>Next</button>
</div>
);
}
}
export default Slider;
return { ...state, year: action.payload }
это вернет вам {year:2017} и в компоненте уже к нему обращаться нужно вот так {year.year}Код родителя:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
tasks: [{
active: true,
content: "Eat chicken",
comments: ["comment1", "comment2"]
}
]
};
}
needData(data){
console.log("data",data)
}
onAddItem(content){
this.setState({
tasks: this.state.tasks.concat.push(content: content, comments: [], active: true)
});
}
render(){
return(
<div className="container-fluid" >
<div className="row app-row">
<LogoBar />
<TasksList tasks = {this.state.tasks} addItem={this.onAddItem.bind(this)} needData={()=>this.needData}/>
</div>
</div>
)
}
}
Код ребенка:
class TasksList extends React.Component {
addItem(event){
event.preventDefault();
console.log(event.refs.itemInput.value);
let input = event.refs.itemInput.value;
this.props.onAddItem(input);
this.props.needData(input)
}
render(){
return(
<div className="col-sm-5 col-xs-12">
<h2> Items </h2>
<form className="form-inline" onSubmit={this.addItem.bind(this)}>
<input type="text" ref="itemInput" placeholder="Type name here..." className="form-control" />
<input type="submit" ref='itemSubmit' value="Add new" className="btn btn-info" />
</form >
</div>
render() {
let onNoteDelete = this.props.onNoteDelete;
return(
<div className="notes-grid" ref="grid">
{this.props.notes.map(note => {
return (
<Note
key={note.id}
color={note.color}
onDelete={()=>onNoteDelete.bind(null, note)}> // и эта строка
{note.text}
</Note>);
})
}
</div>
)
}
constructor(props){
super(props)
this.onNoteDelete=this.onNoteDelete.bind(this)
}
export const renderNotes = async(user , users) => async dispatch => {
let elements = await fire.database().ref('users/' + element + '/notes/'); // Вынес сюда присвоение
Object.keys(users).map(element => {
if (user === users[element].login) {
return dispatch({
type: RENDER_NOTES,
payload: elements
})
}
})
};