Javascript 从redux创建引用存储的变量
我目前正在创建一个引用redux存储的var。我在Javascript 从redux创建引用存储的变量,javascript,reactjs,variables,redux,Javascript,Reactjs,Variables,Redux,我目前正在创建一个引用redux存储的var。我在render()中创建了一个。我希望避免这种情况,并在渲染外部调用它。这里有一个例子。有人建议我使用组件willmount(),但我不知道如何使用它。下面是我实现的代码片段。注意:它可以工作,但仅当我渲染数据时。我使用双JSON.parse,因为它们是带有\ render() { var busData= store.getState().bus.bus; var driverData= store.getS
render()中创建了一个。我希望避免这种情况,并在渲染外部调用它。这里有一个例子。有人建议我使用组件willmount()
,但我不知道如何使用它。下面是我实现的代码片段。注意:它可以工作,但仅当我渲染数据时。我使用双JSON.parse,因为它们是带有\
render() {
var busData= store.getState().bus.bus;
var driverData= store.getState().driver.gdriveras;
var dataReady = false;
if (busData&& driverData) {
dataReady = true;
console.log("========Parsing bus data waterout========");
var bus_data_json = JSON.parse(JSON.parse(busData));
console.log(bus_data_json);
console.log("========Parsing driver data waterout========");
var driver_data_json = JSON.parse(JSON.parse(driverData));
console.log(driver_datat_json);
busDatajson.forEach(elem => {
elem.time = getFormattedDate(elem.time)
});
driverDatajson.forEach(elem => {
elem.time = getFormattedDate(elem.time)
});
...
}
}
下面是一个react redux
用法的示例,它可能会对您有所帮助。
别忘了将StoreProvider
添加到前三名组件中(通常称为App
)
我警告过您,React
和Redux
不适合初学者javascript开发人员使用。你应该考虑学习<代码>不可更改< /C>和函数编程。< /P>
// ----
const driverReducer = (state, action) => {
switch (action.type) {
// ...
case 'SET_BUS': // I assume the action type
return {
...state,
gdriveras: JSON.parse(action.gdriveras) // parse your data here or even better: when you get the response
}
// ...
}
}
// same for busReducer (or where you get the bus HTTP response)
// you can also format your time properties when you get the HTTP response
// In some other file (YourComponent.js)
class YourComponent extends Component {
render() {
const {
bus,
drivers
} = this.props
if (!bus || !drivers) {
return 'loading...'
}
const formatedBus = bus.map(item => ({
...item,
time: getFormattedDate(item.time)
}))
const formatedDrivers = drivers.map(item => ({
...item,
time: getFormattedDate(item.time)
}))
// return children
}
}
// this add bus & drivers as props to your component
const mapStateToProps = state => ({
bus: state.bus.bus,
drivers: state.driver.gdriveras
})
export default connect(mapStateToProps)(YourComponent)
// you have to add StoreProvider from react-redux, otherwise connect will not be aware of your store
你应该看看这个,你能给我举个例子吗,我有点困惑。我阅读了connect()和componentWillMount(),它们看起来都很棒,但不知道如何用JSON.parse实现这一点。