我有一个道具
addHandler
AddTodo
组件来自
App.js
. 然后在里面
地址
combineLatest
合并在内部
map
这是我的密码
应用程序js
import React from 'react';
import { componentFromStream , createEventHandler } from "recompose";
import { combineLatest } from "rxjs";
import { map, tap } from "rxjs/operators";
import AddTodo from './AddTodo/AddTodo';
import Todos from './Todos/todos';
// import User from './User/User';
const App = componentFromStream(prop$ => {
const { handler: onAddHandler, stream: clickStream } = createEventHandler();
const value$ = clickStream.pipe( tap(input =>
console.warn(input)
));
return combineLatest(prop$, value$).pipe(map(([props, value]) => <div>
<AddTodo onAddHandler={onAddHandler} />
{/* <input placeholder="Add TODO" onChange={handler} /> */}
<Todos todo={value} />
</div>));
});
export default App;
import React from "react";
import { combineLatest } from "rxjs";
import { componentFromStream, createEventHandler } from "recompose";
import { pluck, map, startWith, tap } from "rxjs/operators";
const AddTodo = componentFromStream(prop$ => {
const {
handler: onChangeHandler,
stream: inputStream
} = createEventHandler();
const value$ = inputStream.pipe(
map(e => e.target.value),
startWith("")
);
return combineLatest(prop$, value$).pipe(
map(([props, value]) => (
<div>
<input
type="text"
placeholder="Add Todo..."
onChange={onChangeHandler}
/>
<button onClick={() => {}}>Add todo</button>
{/* <button onClick={() => onAddHandler(value)}>Add todo</button> */}
</div>
))
);
});
export default AddTodo;
内部
AddTodo.js
在地图里面我可能在找
return combineLatest(prop$, value$).pipe(
pluck('onAddHandler'),
// and use this value plus the belo values inside map
map(([props, value]) => (