私はこのSO投稿の助けを借りて検索/フィルターアプリケーションを作成しようとしています。しかし、自分のアクション検索アクションがトリガーされた後、私のレデューサーが呼び出されていないというログをチェックしました。私はレデューサーの組み合わせも登録しました。私は愚かなやり方で間違った何かをしたかもしれないが、私は何を得ていないのだろうか?そして私の検索のコンテナであるフィルターアプリケーションではレデューサーが呼び出されていません
import Search from "../components/Search"
import React from "react"
import {connect} from "react-redux"
const SearchContainer =() =>(
<Search/>
)
const mapStateToProps= state => {
console.log("state",state)
return{
results:state.searchResult.values
}
}
export default connect(
mapStateToProps
) (SearchContainer)
Search.js
import React from "react"
import Select from "react-select"
import {connect} from "react-redux"
import {bindActionCreators} from 'redux';
import {search} from "../action/SearchAction"
const Search =() => {
// const {search,value} = this.props
return (
<div>
<input name="search" id="searchbutton" onKeyUp={(event) => search(event.target.value)}></input>
</div>
)
}
const mapDispatchToProps= (dispatch) => (
bindActionCreators({search},dispatch)
)
export default connect(
mapDispatchToProps
// mapStateToProps
) (Search)
SearchActioN
ここ 私は以下の方法で行く必要があり、私が知っているか私はクラス/状態のアプローチを使用する必要がありますしてくださいimport names from "../api/nameList.js"
export function search (value) {
console.log("search triggere",value)
return {
type:"SEARCH",
payload:value
}
}
検索リデューサー
import * as intialState from "../api/names.json"
const intialValues = {names:['vihag','pratixa','saisunnel','eshwaran'],values:[]}
export default function reducer(
state=intialValues,
action){
console.log("search reducer")
switch(action.type){
case "SEARCH":{
const values=state.names.filter(val => val.includes(action.payload))
const newState={...state,values};
console.log("new search state",newState)
return newState
}
default:
return state;
}
}