// 無狀態組件。
// 無狀態組件在組件的實現中,只有render函數時,建議使用。
// 提高性能。
const
App = (
props)
=>{
let {
value,
data} =
props;
return (
<
div
className=
"App"
>
<
div
className=
"handle"
>
<
p
>
{
value
}
</
p
>
<
input
type=
"text"
value=
{
value
}
onChange=
{
props.
handleInputChange
}
/>
<
button
onClick=
{
props.
handleAddAction
}
>新增
</
button
>
</
div
>
<
ul
className=
"list"
>
{
data.
map((
item,
index)
=>{
return (
<
li
key=
{
item.
id
}
>
{
item.
val
}
<
span
onClick=
{
props.
handleDeleteAction(
index)
}
>X
</
span
>
</
li
>
)
})
}
</
ul
>
</
div
>
);
}
//將store中的state值轉爲組件的props使用
const
mapStateToProps = (
state)
=>{
return {
//key爲組件的props的名字
// value值,爲state中的值
value:
state.
list.
value,
data:
state.
list.
data
}
}
//將store中的dispatch轉爲組件的props使用
const
mapDispatchToProps = (
dispatch)
=>{
return {
//key爲組件的props的名字
// value值爲事件,內部能夠操做dispatch
handleInputChange(
ev){
// console.log('觸發了');
let
action =
inputChangeAction(
ev.
target.
value);
dispatch(
action);
},
handleAddAction(){
let
action =
addAction();
dispatch(
action);
},
handleDeleteAction(
index){
return
function(){
let
action =
deleteAction(
index);
dispatch(
action);
}}
}
}
export
default
connect(
mapStateToProps,
mapDispatchToProps)(
App);