mapStateToprops не может назначить состояние для реквизита? - PullRequest
0 голосов
/ 08 октября 2018

Я работаю с редуктором. Он может подключиться к редуксу, но не в состоянии соединиться с реквизитом.Я видел значение состояния, но оно не связано с реквизитом. Не могли бы вы помочь мне выяснить, как я могу назначить состояние реквизиту, пожалуйста

1-reducer_books.js
------------------------------------------------------
export default function  () {
	return [
    { title: 'testTitle1' },
    { title: 'testTitle2' },
    { title: 'testTitle3' },
    { title: 'testTitle4' },
    { title: 'testTitle5' }
	]
}
---------------------------------------------------
2-book-list.js
---------------------------------------------------
import React,{Component} from 'react';
import {connect} from 'react-redux'

 class BookkList extends Component {

  renderLis() {  
		return 
			this.props.books.map((book) => {
				return (
					<li className='list-group-item' key={book.title}> {book.title}</li>
				);
			});
  }



	render(){
		return(
			<ul className="list-group col-sm-4"> 
			  {this.renderLis()}
			</ul>

		)
	}


}


function mapStateToProps(state) {
  console.log("mapStateToPropsInfo: ", state)
  return {
    books: state.books
  
  }
  
}





export default connect (mapStateToProps) (BookkList)


--------------------------------------------------
3-app.js
-------------------------------------------------

import React, { Component } from 'react';
import BookkList from '../containers/book-list'

export default class App extends Component {
  render() {
    return (
      <div>
        <BookkList />
      </div>
    );
  }
}
------------------------------------------------
4-index.js
-------------------------------------------------
import { combineReducers } from 'redux';
import BookReducer from './reducer_books';

const rootReducer = combineReducers({

	books:BookReducer

});

export default rootReducer;

Я работаю с редуктором. Он может соединяться с редуктором, но не в состоянии соединиться с реквизитом.Я видел значение состояния, но оно не связано с реквизитом. Не могли бы вы помочь мне выяснить, как я могу назначить состояние реквизиту, пожалуйста state has value books can not get state value

1 Ответ

0 голосов
/ 08 октября 2018

Вы получите значение реквизита в вашем методе "renderLis ()".Причиной этого является то, что mapStateToProps имеет состояние Store в качестве аргумента / параметра (предоставляемого response-redux :: connect) и используется для связывания компонента с определенной частью состояния хранилища.

Под связыванием я имею в видуобъект, возвращаемый mapStateToProps, будет предоставлен во время построения в качестве реквизита, а любое последующее изменение будет доступно через componentWillReceiveProps.Поэтому, если вы хотите проверить значение реквизита, вы можете проверить его, войдя в консоль в методе жизненного цикла 'componentWillReceiveProps' или в свой renderLis (), где отображается компонент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...